ios9 - Deep linking redirect to app only works on 2nd attempt on iOS 9 and up only -
i have strange redirect app issue our login system in ios 9 only.
now, have abitrary payload allowed , url schemes setup in plist file.
what happens this:
- a user brought sfsafariviewcontroller login facebook/google
- the user enters credentials (or not if cached)
- instead of being redirected our app, user stuck on blank page if credentials cached, or stuck on final google/facebook login page. no "open in app" dialog appears , openurl appdelegate function not called.
now, if user closes sfsafariviewcontroller, comes our in app login page , attempt login again 2nd time, redirect app works every time there , openurl appdelegate method called each time.
do note on ios9, redirected outside app safari complete login process (instead of using sfsafariviewcontroller) , had same issue whereas "open in app" popup redirect app shown on 2nd login attempt , up.
this happening on ios 9 only. on ios 8, issue not appear , our users redirected app after login in.
the redirect url sent app after oauth login same on first login attempt , up.
has gotten such problem on ios 9?
as have mentioned regarding facebook,
first, guess missing call of fbsdkapplicationdelegate's
application:openurl:sourceapplication:annotation:
uiapplicationdelegate'sapplication:openurl:options:
you may missing line
nsurl *url = [launchoptions objectforkey:uiapplicationlaunchoptionsurlkey];
in uiapplicationdelegate'sdidfinishlaunchingwithoptions
cross check have followed setup mentioned in https://developers.facebook.com/docs/ios/ios9
if device jailbreak in ios 9.0.2 cause url scheme issue.
solution worked me below lines of code, have both fb /g+ integrated in app same yours:-
- (bool)application:(uiapplication *)app openurl:(nsurl *)url options:(nsdictionary<nsstring*, id> *)options { return [[fbsdkapplicationdelegate sharedinstance] application:app openurl:url sourceapplication:options[uiapplicationopenurloptionssourceapplicationkey] annotation:options[uiapplicationopenurloptionsannotationkey]] || [[gidsignin sharedinstance] handleurl:url sourceapplication:options[uiapplicationopenurloptionssourceapplicationkey] annotation:options[uiapplicationopenurloptionssourceapplicationkey]]; } - (bool)application:(uiapplication *)application openurl:(nsurl *)url sourceapplication:(nsstring *)sourceapplication annotation:(id)annotation { return [[fbsdkapplicationdelegate sharedinstance] application:application openurl:url sourceapplication:sourceapplication annotation:annotation ] || [[gidsignin sharedinstance] handleurl:url sourceapplication:sourceapplication annotation:annotation]; }
Comments
Post a Comment