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页面?
更新:
经过进一步调查和多次反复试验,我终于得到了这个工作。这是重要的链接: 从 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 次 |
| 最近记录: |