【问题标题】:iOS Facebook URL schemes doesn't open page in facebook appiOS Facebook URL 方案无法在 Facebook 应用中打开页面
【发布时间】:2019-03-10 20:00:23
【问题描述】:

我需要在 facebook 应用中打开 facebook 页面。

这是我的代码

 let url : URL!
 if (UIApplication.shared.canOpenURL(URL(string:"fb://")!)) {
    //FIXME: Url is not working ✋
    let pageName = "google"
      // tried with fb://page?name=%@ not worked
    let urlString =  String.init(format: "fb://page?id=%@",pageName!) 
    url = URL.init(string: urlString)
 } else {
    url = URL.init(string: "https://www.facebook.com/google")
 }

if #available(iOS 10.0, *) {
    UIApplication.shared.open(url!, completionHandler: nil)
} else {
    UIApplication.shared.openURL(url!)
}

它在 safari 浏览器中完美运行,但在 facebook 应用程序中无法运行。

我已经在inof.plist 中添加了url schem

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

谁能帮我解决这个问题?

提前致谢!!!!

【问题讨论】:

    标签: ios swift facebook fbsdk swift4.1


    【解决方案1】:

    试试这个代码,确保使用页面中的 facebook id 而不是页面名称

    查看How to find page Id

     let url : URL!
            if (UIApplication.shared.canOpenURL(URL(string:"fb://")!)) {
                //FIXME: Url is not working ✋
                let pageName = "104958162837"
                // tried with fb://page?name=%@ not worked
                let urlString =  String.init(format: "fb://profile/%@",pageName) 
                url = URL.init(string: urlString)
            } else {
                url = URL.init(string: "https://www.facebook.com/104958162837")
            }
    
            if #available(iOS 10.0, *) {
                UIApplication.shared.open(url!, completionHandler: nil)
            } else {
                UIApplication.shared.openURL(url!)
            }
    

    【讨论】:

      【解决方案2】:

      当您调用UIApplication.shared.openURL(:) 时,它是否在浏览器中打开?

      我没有完全理解您的问题,但如果我没记错的话,您必须输入 Facebook 应用 ID(这是出现的第一件事在您的应用中developers.facebook) 在您的 URL 类型中。

      这张图片应该能说明我想说的话:

      不要忘记"fb"String之前您的App ID


      编辑:既然我已经理解了您的问题,我不能确定您是否能够解决这个问题 - 正如您所看到的所有 @987654323 @-,它们似乎不再起作用,因为 URL 方案更改了几次,而您使用的实际上是引用的最后一个“已回答/使用”回答。 我可以几乎确认由于this answer in fb-sdk github issues,没有支持的方法来做你正在尝试的事情。

      【讨论】:

      • 我正在检查设备中是否有 fb 应用程序,请在 fb 应用程序中打开页面。如果没有,请在 UIWebView 中打开页面.....但问题是它没有在 facebook 应用程序中打开页面。我已经在 URL 类型中添加了“fb”MyID。
      • 哦,现在我已经完全明白了。我会更新我的答案,你的问题可能是你试图在 fb 应用上打开一个 URL,而这不是你这样做的方式。
      猜你喜欢
      • 2014-11-13
      • 1970-01-01
      • 2020-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 2023-04-03
      相关资源
      最近更新 更多