Facebook应用程序邀请通知不在ios中工作

我已经在演示应用程序中实施了Facebook应用程序邀请。 它工作正常,但没有得到通知。

我已经在我的问题中添加了所有细节,现在任何人都可以告诉我在我的代码中是什么问题,我该怎么做才能解决这个问题。 我已经创build了testing用户来testing这个应用程序。

此代码工作正常,它启动一个对话框,显示好友列表,并显示应用程序邀请被发送,但当我检查它在朋友帐户它不显示任何通知。

我的Info.plist文件

我想我在URLtypes(URL Schemes)下的info.plsit中有一个错误。 我已经写了行动,这是方法的名称,但我不知道我应该写在这个专栏。

在这里输入图像说明

Appdelegate.m

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { BFURL *parsedUrl = [BFURL URLWithInboundURL:url sourceApplication:sourceApplication]; if ([parsedUrl appLinkData]) { NSURL *targetUrl = [parsedUrl targetURL]; [[[UIAlertView alloc] initWithTitle:@"Received link:" message:[targetUrl absoluteString] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show]; } return YES; } 

ViewController.h

appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didCompleteWithResults:(NSDictionary *)results获取结果为null appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didCompleteWithResults:(NSDictionary *)results called

 - (IBAction)action:(UIButton *)sender { FBSDKAppInviteContent *content =[[FBSDKAppInviteContent alloc] init]; content.appLinkURL = [NSURL URLWithString:@"https://fb.me/*****************"]; [FBSDKAppInviteDialog showFromViewController:self withContent:content delegate:self]; } - (void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didCompleteWithResults:(NSDictionary *)results { NSLog(@" result %@",results); } - (void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didFailWithError:(NSError *)error { NSLog(@"error = %@", error); NSString *message = error.userInfo[FBSDKErrorLocalizedDescriptionKey] ?: @"There was a problem sending the invite, please try again later."; NSString *title = error.userInfo[FBSDKErrorLocalizedTitleKey] ?: @"Oops!"; [[[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show]; } 

尝试在你的AppDelegate.m中有这个

将其导入顶部:

 #import <FBSDKCoreKit/FBSDKCoreKit.h> 

并将其用于应用程序:openurl:sourceapplication:注释

 - (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; } 

这使用facebook sdk来处理openurls而不是自定义处理程序。

这将触发你已经定义的委托方法,然后你可以继续提醒用户或做任何你想要的。

同样在你的info.plist中,URLSchemes的值需要和你在facebookinput的“自定义scheme的url”中的值相同。 例如,如果您在facebook对话框中的“具有自定义scheme的url”中有myapp://那么您的URLScheme将是myapp (您当前正在执行的action

所有这一切是让Safari浏览器知道,如果你在URL栏中调用“myapp://”,那么它应该打开你的应用程序。 除非你传递给应用程序的参数,你不需要在Facebook屏幕上的'myapp://'之后。

/ —–边注—– /

请确保在您的开发者设置( https://developers.facebook.com/apps/ {{app-id}} / settings /)中添加了平台ios,并设置了捆绑ID和iPhone商店ID和iPad商店ID。

从我的应用程序在Facebook开发者页面截图

您可以使用任何应用程序ID(从iTunes连接,实际称为“苹果ID”)为iPhone和iPad的应用程序ID(只要确保从应用程序商店有效的名称,不必匹配),并使用您的包编号为您的应用程序。 iphone&ipad id的号码可以相同。 这是至关重要的,因为如果没有下载应用程序,它不知道在哪里发送用户。 把这个,并发送另一个通知,它应该工作。

/ ———-边注2 ————- /

当使用Facebook的“快速启动”来创build应用程序邀请链接时,请确保您正确设置了ios框中的参数。 这里是一个设置应该是什么样子的例子(这个链接看起来像“ https://fb.me/634411166661512 ”)

fb应用程序链接的示例设置

如果你在你的info.plist的URLSchemes下有“myapp”,你可以把“myapp://”放在“myapp://” Facebook的“自定义计划的url”。 应用程序名称可以是任何东西,只是为了显示。 虽然它说“App Store Id”是可选的,但它是必需的 。 请确保您在此处使用与您在上面设置“iPad商店标识”和“iPhone商店标识”相同的内容。 这告诉苹果推动用户到iTunes商店,如果他们没有你的应用程序。

转到开发人员仪表板。 select你的应用。 添加平台“Facebookcanvas”,设置canvasurl。 希望它的作品

要获得工作通知,请转到设置并添加所需的平台。 如果你想获得iOS本地应用程序的通知,而不是添加与“Android”相同的“iOS”平台,以及添加“Facebookcanvas”的networking。 为每个平台添加所需的数据,并尝试。 希望它能工作。

请记住:对于iOS和Android本机应用程序,您必须添加实时应用程序的数据:)

应用邀请只适用于移动平台。 我也遇到了同样的问题,我在模拟器上testing到Web。 希望这会帮助:)

在这里输入图像说明