【问题标题】:Can not open facebook page in the app from a link in iOS browser无法通过 iOS 浏览器中的链接在应用程序中打开 Facebook 页面
【发布时间】:2022-10-12 18:44:02
【问题描述】:

我正在尝试使用 NFC 或 QR 码将 facebook 应用程序打开到某个页面。这在 Android 上完美运行,但在 iOS 上,我无法终生让链接正常运行。我的代码:

编辑:目的是引导流量通过我控制的页面进行分析,并在 Facebook 应用程序中打开特定页面。我可以在 safari 中打开移动 Facebook 页面,并且可以在 Android 上将 Facebook 应用程序打开到正确的寻呼机。我无法成功地使用 url 方案在 safari 中创建一个链接,将 Facebook 打开到业务页面。

var userAgent = navigator.userAgent || navigator.vendor || window.opera;
var isAndroid = (/android/i.test(userAgent));
var isIOS = (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream);
var isDesktop = !isAndroid && !isIOS;
var pageName = 'stubque.springfield';
var page_url = 'https://www.facebook.com/'+pageName;
var isFocused = true;

setTimeout(() => {
    if(isDesktop) this.location=page_url;
    if(isAndroid) fburl = "fb://facewebmodal/f?href="+encodeURI(page_url);
    if(isIOS){
        //opens facebook, but not page
        fburl = "fb://faceweb/f?href="+encodeURI(page_url);
        fburl = "fb://"+pageName;
        fburl = "fb://page/"+pageName;
        fburl = "fb://facewebmodal/f?href="+encodeURI(page_url);
        fburl = "fb://profile/"+pageName;

        //opens facebook but stuck on loading screen
        fburl = "fb://page?id="+pageName;
    }
    addEventListener('blur', (event) => { isFocused = false; });
    setTimeout(() => {
        if(isFocused) this.location = page_url;
    }, 100);
    this.location=fburl;
}, 1800);

有没有人幸运地使用 URL Schemes 在 facebook 上打开应用内页面?

编辑2:我意识到 facebook 现在会自动为所有页面分配一个二维码,扫描 android 上的二维码会按预期打开页面,但是在我的(当然是旧的)iPhone 上,它会将我发送到一个错误页面,上面写着“对不起,这个功能是'现在不可用'。我有人一直在为我测试新 iPhone,但如果他们最终得到相同的结果,我担心这可能意味着 iOS 上的 Facebook 的深度链接完全被破坏了。

【问题讨论】:

  • 那篇文章及其答案与从 Facebook 浏览器打开原生 Facebook 页面有关。我正在尝试使用移动 Safari 中的链接在 Facebook 应用中打开 Facebook 页面

标签: javascript ios facebook url-scheme


【解决方案1】:

Facebook iOS 应用 URI 方案将仅识别您页面的数字 id(而不是命名的 id “stubque.springfield”)。

您的页面 ID 是 100086393472203

我通过在命令行上运行它获得了您页面的数字 id:

curl -skA "Mozilla/5.0" https://www.facebook.com/stubque.springfield/ | grep -oE "fb://[^"]+"
# fb://profile/100086393472203

命令取自:https://stackoverflow.com/a/33363610

因此,您应该将代码的 iOS 部分更新为:

if(isIOS){
    //opens facebook app to the stubque.springfield page
    fburl = "fb://profile/100086393472203"
}

【讨论】:

  • 这是我一直缺少的,使用新的页面体验我无法找到页面 id,谢谢。这是我在网上看到的方法,感谢您帮助解决缺失的部分!
【解决方案2】:

我找到了适合我的解决方案。我不确定它是否适用于所有人,但值得一试。

通过使用以下 URL,我能够让 facebook 应用程序打开到正确的页面: fb://profile/<page_id>

我可以通过转到 facebook 应用程序中的页面并单击右上角的三个点来获取 page_id。这将打开一个菜单,page_id 是 URL 末尾的数字。

【讨论】:

  • 此页面是使用新页面体验设置的,我无法找到页面 id,在我的情况下页面名称显示在 url 的末尾,但方法是正确的,谢谢
猜你喜欢
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 2013-05-28
相关资源
最近更新 更多