FBSDKAppInviteDialog 总是启动浏览器

Posted

技术标签:

【中文标题】FBSDKAppInviteDialog 总是启动浏览器【英文标题】:FBSDKAppInviteDialog always launches browser 【发布时间】:2015-09-28 15:39:04 【问题描述】:

我需要在我的应用中发送应用邀请,并希望为此使用原生 ios Facebook 应用(如果已安装)。

我在装有 iOS 9.0.1 并安装了本机 Facebook 应用程序的 iPhone 上运行它,但对话框总是启动浏览器。它只是不启动 Facebook 应用程序。

这是我的代码:

let appLinkUrl:NSURL = NSURL(string: "https://fb.me/xxx")!

var inviteContent:FBSDKAppInviteContent = FBSDKAppInviteContent()
inviteContent.appLinkURL = appLinkUrl

FBSDKAppInviteDialog.showFromViewController(self, withContent: inviteContent, delegate: self)

我的 info.plist 看起来像这样

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fbxxx</string>
        </array>
    </dict>
</array>

<key>FacebookAppID</key>
<string>xxx</string>
<key>FacebookDisplayName</key>
<string>xxx</string>

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
</array>

此外,所有与NSAppTransportSecurity 相关的条目,如快速入门指南中的条目。

【问题讨论】:

正确。这是因为 Apple 对 iOS9 所做的更改 @WizKid 所以没有办法为此启动 Facebook 应用程序? @WizKid 这不是真的!正如他们的文档清楚地表明Facebook Login is not required for app invites because the experience takes place in the Facebook native mobile app. 你能链接到那个,这样我可以告诉然后改变它 @WizKid 在这里声明developers.facebook.com/docs/app-invites/overview 【参考方案1】:

根据 iOS 9,链接应该在 Safari 浏览器中打开。这里是下面的链接,

https://developers.facebook.com/bugs/786729821439894/?search_id

【讨论】:

以上是关于FBSDKAppInviteDialog 总是启动浏览器的主要内容,如果未能解决你的问题,请参考以下文章

FBSDKAppInviteDialog 检查我刚刚邀请了多少朋友

iOS 9 和 10 (FB SDK 4.2.0) 上的 FBSDKAppInviteDialog 停止在“showFromViewController”上加载

为啥 Windows 总是启动? [关闭]

为啥 PhoneGap 总是显示默认的启动画面?

安装docker时总是启动失败是怎么回事?

Android:当应用程序被销毁和重新创建时总是启动启动活动