ich mit Objective C Uberkit Bibliothek arbeite Benutzer mit Uber zu authentifizieren und einige API-Methoden aufrufen implementiert es in Meine App ist für iOS zusammengestellt 9.UberKit Anwendung: openURL. SourceApplication Nicht
Ich habe erfolgreich integriert Das SDK und UberKit authentifiziert einen Benutzer, indem er eine Safari für den OAuth-Flow öffnet. Safari ist jedoch nach dem Aufruf der Weiterleitungs-URL mit dem Auth-Code von Uber festgefahren.
Es scheint, wie die application:openURL:sourceApplication:annotation
Methode in AppDelegate nie aufgerufen. Unten ist, wie die obige Methode in meinem AppDelegate
aussieht.
- (BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"Not Called");
if([[UberKit sharedInstance] handleLoginRedirectFromUrl:url sourceApplication:sourceApplication])
{
return YES;
}
else
{
return NO;
}
}
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<NSString *,id> *)options {
NSLog(@"URL scheme:%@", [url scheme]);
if([[UberKit sharedInstance] handleLoginRedirectFromUrl:url sourceApplication:[url scheme]])
{
return YES;
}
return NO;
}
Die relevanten Teile meiner Info.plist Datei sind unten gezeigt.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>com.go.UberChat</string>
<key>CFBundleURLSchemes</key>
<array>
<string>uberkit</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>uber</string>
<string>https://www.example.com</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections -->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
https://www.example.com
ist meine Redirect-URL so die Safari im https://www.example.com/?code=3iSwJyxezGi41zliUaNj5SyXYZXYZ
stecken und kehrt nicht zu meiner app, so dass der Rest des Oauth Fluss stattfinden kann.
Alles, was ich vermisse? Ich habe versucht, meine App für iOS 8 noch kein Glück zu kompilieren. Ich versuchte auch - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url
Methode in meinem AppDelegate
Aufruf, aber immer noch kein Glück.
sind Sie aktiviert die zugeordneten Domains in Ihrer App-ID –
bin nicht sicher, was du meinst, bitte klären Sie weiter. – nmvictor
Haben Sie herausgefunden, warum es nicht angerufen wird? Ich habe ein ähnliches Problem und es betrifft nur iOS 8 (iOS 9 funktioniert wie erwartet). –