Try having this in your AppDelegate.m
:
Import this at the top:
#import <FBSDKCoreKit/FBSDKCoreKit.h>
And use this for the application: openurl: sourceapplication: annotation
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
{
if (!url) {
return NO;
}
[[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
return YES;
}
This uses the Facebook SDK to handle openurls instead of a custom handler.
This will trigger the delegate methods you have defined and then you can proceed to alert the user or do whatever you want.
Also in your info.plist
the URLSchemes
value needs to be the same as what you have in your Facebook input 'URL with a custom scheme'. For example if you have myapp://
in your 'URL with a custom scheme' on the Facebook dialogue then your URLScheme
would be myapp
(where you currently have action
)
All that does is lets Safari know that if you call myapp://
in the URL bar then it should open your app. Unless your passing parameters to the app you don't need anything after the myapp://
in the Facebook screen.
Make sure in your developer settings (https://developers.facebook.com/apps/{app-id}/settings/) you have added the platform iOS, and have set up both a bundle id and the iPhone store id and iPad store id.
You can use any app id (the one from itunes connect, actually called 'Apple id') for the iPhone & iPad app id (just make sure its a valid one from the app store, names don't have to match) and use your bundle id for your app. The number for the iPhone & iPad id can be the same. This is crucial as Facebook doesn't deliver the notification to the user without this because it doesn't know where to send the user if they haven't downloaded the app. Put this in and send another notification and it should work.
When using Facebook's 'Quick Starts' to create the app invite link, make sure you are setting up the parameters in the iOS box correctly. Here is an example of what the setup should look like. This is the link that looks like https://fb.me/634411166661512
The "URL with a custom scheme" needs to be the same whatever you have in your info.plist
- using the answer above if you have myapp
in your info.plist
under URLSchemes
you would put "myapp://" in the Facebook "URL with a custom scheme". The app name can be anything, that's just for display. Although it says "App Store Id" is optional, it is required. Make sure you use the same one in here as you did above where you set your "iPad Store Id" and "iPhone Store Id". This tells Apple to push the user to the itunes store if they do not have your app.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…