在 facebook 应用程序中打开页面只会打开应用程序本身

Dav*_*vid 7 javascript jquery facebook jquery-mobile

我有 jQuery Mobile 应用程序,其中有一个指向相关 Facebook 页面的链接。我想要做的是在 facebook 应用程序中打开页面(如果已安装),否则在默认浏览器中打开。我有打开 facebook 应用程序的代码,但仅此而已 - 未加载所需的页面。这是我用来打开应用程序的代码(源自如何从移动浏览器启动应用程序(facebook/twitter/etc),但如果未安装应用程序,则回退到超链接

$(document).on("pageinit", "#home", function (e, data) {
  $('a.openapp').on('click', function (event) {
    uriSchemeWithHyperlinkFallback($(this).data('scheme'), $(this).attr('href'));
    event.preventDefault();
  });

  function uriSchemeWithHyperlinkFallback(uri, href) {
    if(!window.open(uri)){
      window.location = href;
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

而且,这是我尝试过的链接的变体:

<a class="openapp" href="https://www.facebook.com/Raven-Rock-Ramble-233457512435/" data-scheme="fb://page/Raven-Rock-Ramble-233457512435/" ><img class="social_logo" src="./img/fb.png" alt="facebook"></a>
<a class="openapp" href="https://www.facebook.com/Raven-Rock-Ramble-233457512435/" data-scheme="fb://page/233457512435/" ><img class="social_logo" src="./img/fb.png" alt="facebook"></a>
<a class="openapp" href="https://www.facebook.com/Raven-Rock-Ramble-233457512435/" data-scheme="fb://facewebmodal/f?href=https://www.facebook.com/Raven-Rock-Ramble-233457512435/" ><img class="social_logo" src="./img/fb.png" alt="facebook"></a>
<a class="openapp" href="https://www.facebook.com/Raven-Rock-Ramble-233457512435/" data-scheme="fb://profile/233457512435/" ><img class="social_logo" src="./img/fb.png" alt="facebook"></a>
Run Code Online (Sandbox Code Playgroud)

我已经做了很多搜索(见下面的链接)。我想我需要一个可以通过 graph.facebook.com 找到的特殊页面 ID,但它似乎不再可用。脸书的变化似乎也太快了,任何超过 6 个月的帖子都已经过时了。我确实查看了页面的源代码并找到了一个 uid 值(根据其中一个链接),但可惜,没有乐趣。我欢迎这里的任何见解,因为我被卡住了!

相关链接:

如果已安装,则用于启动应用程序的 HTML 链接,如果未安装,则转到网站

如何从移动浏览器启动应用程序(facebook/twitter/etc)但如果未安装应用程序则退回到超链接

在 Android 上的 Facebook 应用程序(如果已安装)中打开 Facebook 页面

通过简单的 URL Sheme 问题在 Native Facebook IOS App 中打开 Facebook 页面

如何在iphone的facebook应用程序中打开facebook页面?

http://www.techrepublic.com/article/pro-tip-use-this-hack-to-open-a-specific-facebook-page-from-your-android-app/

更新:

经过进一步调查和多次反复试验,我终于得到了这个工作。这是重要的链接: 从 iOS 应用程序打开 Facebook 页面的链接

总而言之,在浏览器中打开所需的 facebook 页面,查看源代码(在大多数浏览器中为 Ctrl+U),然后搜索 al:ios:url。您应该能够找到以下行:

<meta property="al:ios:url" content="fb://page/?id='your_page_numeric_id'">
Run Code Online (Sandbox Code Playgroud)

有你需要的网址。所以,在我的代码中(见上文),这个链接现在可以正常工作:

<a class="openapp" href="https://www.facebook.com/Raven-Rock-Ramble-233457512435/" data-scheme="fb://page/?id=233457512435" ><img class="social_logo" src="./img/fb.png" alt="facebook"></a>
Run Code Online (Sandbox Code Playgroud)

这里的主要内容是 facebook 应用程序的 URL 语法是fb://page/?id=

2017 年 9 月 15 日更新:

我正在重新访问此代码。它似乎在 IOS 上工作得很好,但在 Android 上却不是,它只打开 facebook 应用程序但不加载页面:-(

2017 年 9 月 19 日更新:

好的,我现在可以在 iOS 和 Android 上运行了。两者的语法略有不同。这是当前可用的 js 代码:

$(document).on("pageinit", "#home", function (e, data) {
  $('a.openapp').on('click', function (event) {
    var scheme;
    if (iPhone)
      scheme = "fb://page/?id=" + $(this).data('id');
    else
      scheme = "fb://page/" + $(this).data('id');
    uriSchemeWithHyperlinkFallback(scheme, $(this).attr('href'));
    event.preventDefault();
  });

  // Open page in app, else open page in browser 
  function uriSchemeWithHyperlinkFallback(uri, href) {
    if (!window.open(uri)) {
      window.location = href;
    }
  }  
});
Run Code Online (Sandbox Code Playgroud)

这是相关的html:

<a class="openapp" href="https://www.facebook.com/CFFCarolinasRaleigh/" data-id="134656996545475" ><img class="social_logo" src="./img/fb.png" alt="facebook"></a>
Run Code Online (Sandbox Code Playgroud)

请注意,iOS 似乎需要 ?id= 而 Android 不需要。“iPhone”是我在别处设置的全局变量,

var useragent = navigator.userAgent; // cache the userAgent info
var iPhone = (useragent.match(/(iPad|iPhone|iPod)/g));
Run Code Online (Sandbox Code Playgroud)

2020 年 7 月 15 日更新:

上面描述的页面源技术似乎不再起作用。但是,有些网站会返回数字页面 ID。请参阅 https://fb-search.com/find-my-facebook-id

对于我引用的特定页面,iOS 和 android 上的 url 略有不同:

iOS版:fb://profile/?id=<numeric page id> 机器人:fb:///page/<numeric page id>

这对我来说毫无意义,但它奏效了。

归档时间:

查看次数:

2587 次

最近记录:

5 年,4 月 前