更新 我正在使用Facebook版本48.0和iOS 9.2.1
我一直在努力与Facebook分享并在iOS9上深入链接到我的应用程序几天,而且我无法让我的应用程序在点击共享内容时自动启动。
在iOS8上,一切似乎都按预期工作。
当我点击共享内容时,我看到的只是Facebook自己的网页浏览中的空白页面。 在右上角的“分享”按钮下,我可以选择在safari中打开链接,以及打开我的应用程序。这两个选项实际上都会打开应用程序。但我想要的是提示直接打开我的应用程序。
事实是,当我从浏览器分享我的网址时,这实际上是有效的。 不同之处在于,一个是链接共享,而我尝试从我的应用程序共享的是一个开放图表共享。
我知道类似的问题(like this one),但没有一个答案对我有用。可能是因为我的设置有点不同。
我的设置:
分享到Facebook有效,但为了完成,我已经包含了我的共享代码。 我正在使用FBSDKShareDialog分享FBSDKShareOpenGraphContent:
FBSDKShareDialog *shareDialog = [[FBSDKShareDialog alloc] init];
shareDialog.fromViewController = self.parentViewController;
NSDictionary *properties = @{@"fb:app_id": <fb_app_id>, @"og:type": @"video.other", @"og:locale": @"sv_SE", @"og:url": <url_to_applink_host>, @"og:title": @"Title", @"og:description": @"my description", @"og:image": <image_url>};
FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties];
// Create an action
FBSDKShareOpenGraphAction *action = [[FBSDKShareOpenGraphAction alloc] init];
action.actionType = @"video.watches";
[action setObject:object forKey:@"video"];
// Create the content
FBSDKShareOpenGraphContent *ogContent = [[FBSDKShareOpenGraphContent alloc] init];
ogContent.action = action;
ogContent.previewPropertyName = @"video";
shareDialog.shareContent = [self getFBContentWithProperties:mutableProperties];
shareDialog.delegate = self;
shareDialog.mode = FBSDKShareDialogModeNative;
if (![shareDialog canShow]) {
shareDialog.mode = FBSDKShareDialogModeFeedBrowser;
}
[shareDialog show];
用于内容的网址指向生成的网站,如下所示:
<html>
<head>
<meta property="al:ios:url" content="myappscheme://?type=series&contentId=61b768777300eb6e&providerId=3" />
<meta property="al:ios:app_store_id" content="<app_store_id>" />
<meta property="al:ios:app_name" content="MyApp" />
<meta property="al:web:should_fallback" content="false" />
</head>
</html>
最后这是我的plist文件的样子:
...
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>myappscheme</string>
<string>fbAppIdScheme</string>
</array>
</dict>
</array>
...
<key>FacebookAppID</key>
<string>12345</string>
<key>FacebookDisplayName</key>
<string>MyAppName</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
...
我觉得必须有一些明显我不知道的东西,或者是facebook的网页视图被打破了?
欢迎任何提示或指导!
更新
以下是一个示例链接: http://shared.streamler.tv/f883439972d67d733e2c855b1ce224c6d4b1c727