Facebook应用中的打开页面仅打开应用程序

时间:2017-03-27 21:45:28

标签: javascript jquery facebook jquery-mobile

我有jQuery Mobile应用程序,其中我有一个指向相关Facebook页面的链接。我想要做的是在Facebook应用程序中打开页面(如果已安装),否则在默认浏览器中打开。我有代码打开Facebook应用程序,但没有更多 - 没有加载所需的页面。这是我用来打开应用的代码(源自How to launch apps (facebook/twitter/etc) from mobile browser but fall back to hyperlink if the app isn't installed

$(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;
    }
  }
});

而且,我尝试过的链接有以下变化:

<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>

我已经完成了很多搜索(请参阅下面的链接)。我知道我需要一个特殊的页面ID,可以通过graph.facebook.com找到,但似乎不再可用。 Facebook的变化也很快,以至于任何超过6个月的帖子都已过时。我确实查看了页面的源代码并找到了一个uid值(根据其中一个链接),但唉,没有快乐。我欢迎任何见解,因为我被卡住了!

相关链接:

HTML link to launch an app if installed or go to a website if not

How to launch apps (facebook/twitter/etc) from mobile browser but fall back to hyperlink if the app isn't installed

Open Facebook Page in Facebook App (if installed) on Android

Open Facebook page in Native Facebook IOS App via simple URL Sheme issue

How to open facebook page in facebook app in iphone?

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

更新:

经过进一步的调查和反复试验,我终于得到了这个工作。这是重要的链接:Open link to Facebook page from iOS app

总结一下,在浏览器中打开所需的Facebook页面,查看源(大多数浏览器中为Ctrl + U),然后搜索al:ios:url。你应该能够找到这一行:

<meta property="al:ios:url" content="fb://page/?id='your_page_numeric_id'">

您需要的网址。因此,在我的代码中(见上文),此链接现在可以正常工作:

<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>

这里的主要内容是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;
    }
  }  
});

以及相关的html:

<a class="openapp" href="https://www.facebook.com/CFFCarolinasRaleigh/" data-id="134656996545475" ><img class="social_logo" src="./img/fb.png" alt="facebook"></a>

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

var useragent = navigator.userAgent; // cache the userAgent info
var iPhone = (useragent.match(/(iPad|iPhone|iPod)/g));

0 个答案:

没有答案