【发布时间】:2016-09-09 01:14:23
【问题描述】:
我正在尝试使用用户的 Facebook UID 在 Swift 中打开用户的 Facebook 个人资料。在模拟器中,它可以工作并打开配置文件的网络版本并且工作正常,但是在我的实际设备上,它会打开 Facebook 本机应用程序并给我一个“找不到页面”错误。
guard let facebookUID = self.user?.facebookUID else {
return
}
print(facebookUID)
let fbURLWeb: NSURL = NSURL(string: "https://www.facebook.com/\(facebookUID)")!
let fbURLID: NSURL = NSURL(string: "fb://profile/\(facebookUID)")!
if(UIApplication.sharedApplication().canOpenURL(fbURLID)){
// FB installed
UIApplication.sharedApplication().openURL(fbURLID)
} else {
// FB is not installed, open in safari
UIApplication.sharedApplication().openURL(fbURLWeb)
}
我做错了什么?
提前致谢!
编辑
我注意到,如果用户删除或未在手机上安装 Facebook 应用程序,它将通过 Safari 正确打开个人资料,这就是它在模拟器上工作但在我的手机上没有的原因设备。但是,我也注意到,如果我尝试使用像 fb://profile/4 这样的公共个人资料(这是马克扎克伯格的个人资料),我可以让它在 Facebook 应用程序中工作。
【问题讨论】:
-
嗯,很奇怪,我测试了你的代码,它在我的设备上运行良好
-
您访问的 Facebook 个人资料是私密的吗?我在想,因为它还需要我登录网络版本才能查看个人资料,所以这可能是令牌的问题
-
@PenkeySuresh 还没有弄清楚这一点。你有没有在你的手机上安装 facebook 应用程序?我能够弄清楚为什么它在模拟器中而不是在我的实际设备上工作。似乎在安装 Facebook 应用程序时,它会给出该错误。如果没有安装,它只会在 Safari 中打开用户的个人资料
-
我在 iPhone 5s 真机上试过。在设备上安装 facebook。尝试使用有/没有共同朋友的个人资料
-
您是否有机会将示例项目推送到 GitHub 以便我查看?这不适用于我的设备或我在@PenkeySuresh 上尝试过的任何朋友设备
标签: ios swift facebook facebook-graph-api facebook-sdk-4.0