强制Facebook在智能手机上使用外部浏览器打开链接

12

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


除非他们足够聪明地自行禁用Facebook浏览器,否则您无法进行tmk。http://www.androidcentral.com/how-turn-facebooks-app-browser-external-links - NobleUplift
Facebook在其应用内浏览器中打开外部网页,相当于20世纪90年代末期的框架网站在网站内部打开外部链接。然而,这一次似乎没有一两行JavaScript代码可以让用户从这种设置中逃脱。 - Rounin
可以检测浏览器并向用户显示应在系统浏览器中打开的消息,否则可能无法正常工作。 - Zbyszek
请参阅 https://dev59.com/JqTja4cB1Zd3GeqPGsHD,其中还链接了更多关于此问题的帖子。 - Ryan
5个回答

7
在Android上,您可以使用Firebase动态链接让用户通过外部浏览器打开特定的URL。我猜Android WebView配备了一些Firebase SDK,所以这种方法只适用于Android。用户仍然会在iOS应用内浏览器中打开链接。
  1. 创建一个项目和动态链接域

  2. 手动创建链接,例如:https://DOMAIN.page.link/?link=YOUR_DEST_URL (或者还有很多其他的创建链接的方式

例如,在Facebook或Messenger上发布此链接并尝试:

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

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

这应该是被接受的答案。我刚刚尝试了一下,效果非常好。 - Artokun
6
这个不起作用。Facebook强制使用其内部浏览器打开该动态链接。 - sugeesh
2
在三星 Android 上运行正常,但在 iPad/iPhone 上无法运行。 - Tony O'Hagan
如果您在Facebook的移动浏览器中遇到PWA无法正常运行的问题,使用动态链接将强制其转到常规浏览器。但不要使用自定义域。请使用https://YOURDOMAIN.page.link。 - Richard Varno
这似乎只在 Messenger 中有效。在普通的 Facebook 新闻动态中,它仍然使用 Facebook 的应用内浏览器。 - RobEW

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

非常感谢您开源该项目。不幸的是,它似乎无法正常工作。 - Ryan
2
你的设备操作系统是什么? 这个演示只适用于Android设备,你可以使用IOS方案代替这个方案。 - Jack
我看到了你的问题回复。谢谢。 - Ryan
它只在Chrome版本77.0.3865.92或更早版本中工作。 我认为谷歌的一些开发人员出了错,所以这个功能不起作用 :)) - Nguyễn Đăng Dũng

1

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


0

由于明显的安全原因,这是不可能的,但有其他方法:

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

如果您为您的网站创建一个应用程序,那么就没有必要使用Facebook了。

2.创建一个显示Facebook页面的应用程序

只要它是您的页面而不是误导性的内容,那么这是允许的,并且您可以在Android Studio中做一些非常棒的事情。

例如,如果您发布一个“喜欢”

mywebsite.com/forum/

有一个很酷的函数可以使用.endsWith("/forum/"),从那里,当链接以“/forum/”结尾时,您可以使您的应用程序做任何事情。

我已经做了一些事情:

  1. 重定向到该链接
  2. 打开浏览器显示链接
  3. 移动到应用程序的某个部分
  4. 显示对话框

还有更多您可以做的事情。


哇,听起来很有趣。我知道HTML、CSS和JS,但我从未创建过应用程序。您建议的内容在哪里可以学到更多?谢谢! - Scotty Gdog
这是一个非常好的资源,可以使用https://developer.android.com/guide/webapps/webview.html,如果您有兴趣,我随时可以帮您构建应用程序 :) - FlamingGenius

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接