强制 Facebook 在智能手机的外部浏览器中打开链接

Posted

技术标签:

【中文标题】强制 Facebook 在智能手机的外部浏览器中打开链接【英文标题】:Force facebook to open link in external browser for smart phones 【发布时间】:2017-05-02 20:50:39 【问题描述】:

如何在 Facebook 帖子中发布指向我的网站的链接,并在使用智能手机应用程序时在用户的外部浏览器中打开它,而不是 Facebook 的本地浏览器,它无法正常显示?我的页面是http://www.hannabery.com

【问题讨论】:

除非他们足够聪明,可以自己禁用 Facebook 浏览器,否则你不能 tmk。 androidcentral.com/… Facebook 在自己的应用内浏览器中打开外部网页,相当于 1990 年代后期框架网站在网站框架内打开外部链接。然而,这一次似乎没有一行或两行允许从该设置中转义的 javascript 也许可以检测到该浏览器并向用户显示应在系统浏览器中打开的消息,否则将无法正常工作。 另见***.com/q/45953870/470749,它链接到更多关于此的帖子。 【参考方案1】:

在 Android 上,您可以使用Firebase Dynamic Links 让用户通过外部浏览器打开特定的 URL。我猜Android webview配备了一些Firebase SDK,所以这种方法只适用于Android。用户仍然通过 ios 上的应用内浏览器打开链接。

    Create a project 和动态链接域

    手动创建链接,如:https://DOMAIN.page.link/?link=YOUR_DEST_URL (或者有many other ways创建链接)

例如,将此链接发布到 Facebook 或 Messenger 并尝试一下:

https://fugle.page.link/trade-landing-page

注意:动态链接主要用于跨平台和应用安装提供一致和流畅的用户体验。这只是我发现的一个副作用,可能有助于回答问题,并且可能不会持续很长时间,因此不应作为最终解决方案。

【讨论】:

这应该是公认的答案。我刚试过这个,效果很好。 这不起作用。 FB 用其内部浏览器强行打开该动态链接 在三星 Android 上工作,在 iPad/iPhone 上失败。 如果您的 PWA 无法在 Facebook(插入脏话)移动浏览器中正常运行时遇到问题。使用动态链接会将其强制输出到常规浏览器。但是不要使用您的自定义域。请改用YOURDOMAIN.page.link 这似乎只适用于 Messenger。在普通的 Facebook 新闻提要上,它仍然使用 facebooks 应用内浏览器。【参考方案2】:

希望这种方式可以帮助到你:

var ifc = document.createElement("div");
ifc.innerhtml = `<iframe src='$browserScheme$target' style='width:0;height:0;border:0; border:none;visibility: hidden;'></iframe>`;
document.body.appendChild(ifc);

完整来源和示例:https://github.com/huantt/force-open-browser/tree/master

【讨论】:

非常感谢开源该项目。不幸的是,它似乎不起作用。 您的设备操作系统是什么?本演示仅适用于Android设备,您可以使用IOS方案代替此方案 我看到了您的问题回复。谢谢。 它只适用于 chrome 版本 77.0.3865.92 或更早版本。我认为谷歌的一些开发者错误地部署了,所以这个功能不起作用:))【参考方案3】:

https://github.com/huantt/force-open-browser/tree/master 我以为这个只有在信使上发送链接时才有效。但是点击 fb messenger 的任何链接都会询问您喜欢哪种浏览器。我在我的页面上使用了代码,并在 FB 上发布了链接,它由 FB 浏览器打开。真烦人:(

【讨论】:

【参考方案4】:

这不能做到(出于明显的安全原因),但有办法

1.为您的网站创建一个应用程序

如果您为自己的网站创建应用程序,那么中间就不需要 facebook

2.创建一个显示facebook页面的应用

只要它是你的页面而不是误导,那么这是允许的,你可以在 android studio 中做一些漂亮的事情

例如,如果您发布了一个赞

mywebsite.com/forum/

你可以使用这个很酷的功能.endsWith("/forum/"),当点击以“/forum/”结尾的链接时,你可以让你的应用程序做任何事情

我做了一些事情

    重定向到该链接 打开浏览器显示链接 移动到应用程序的一部分 显示对话框

你能做的还有很多

【讨论】:

哇,听起来很有趣。我知道 html 和 css 和 js,但我从未创建过应用程序。我在哪里可以了解更多关于您的建议的信息?谢谢! 这里是一个很好的资源,可以使用developer.android.com/guide/webapps/webview.html 或者如果你有兴趣我随时可以构建一个应用程序:)【参考方案5】:

如果您的 PWA 无法在 Facebook(插入脏话)移动浏览器中正常运行时遇到问题。使用动态链接会将其强制输出到常规浏览器。但是不要使用您的自定义域。请改用https://YOURDOMAIN.page.link

https://firebase.google.com/docs/dynamic-links/custom-domains

也不要跳过预览页面!

【讨论】:

以上是关于强制 Facebook 在智能手机的外部浏览器中打开链接的主要内容,如果未能解决你的问题,请参考以下文章

facebook页面无法显示技术性错误

制作可在 Facebook 上运行并作为智能手机应用程序的游戏

微信页面在浏览器中打不开的解决方法

手机浏览新闻,经常遇到被强制跳转到其它app的问题,有啥办法吗?

存储空间不足怎么删除

在智能手机和平板电脑中使用 header() 强制使用 php 下载图像