【发布时间】:2021-09-16 08:53:06
【问题描述】:
我网站中的某些页面具有 PWA 安装功能(instagram 应用内浏览器不支持该功能)。因此,当我的访问者点击这些页面链接时,我想在本机浏览器中打开它,而不是在 Instagram 应用内浏览器中保持导航。
我尝试了以下方法:
$('.my-link').on('click', function(evt){
if(navigator.userAgent.includes("Instagram")){
evt.preventDefault();
window.open($(this).attr('href'), '_blank');
return false;
}
return true;
});
if 条件匹配 true,但目标页面仍在 Instagram 应用内浏览器中打开。我也尝试过 window.open($(this).attr('href'), '_system');,但没有成功。
有什么线索吗?
更新 1
尝试使用 URIs 方案来强制打开浏览器,但不幸的是它似乎不是一个好的解决方案。 Safari 没有 URI 方案。 Google Chrome 可以,但我们无法保证用户在 Android 中拥有 Chrome 浏览器,并且我们无法检测到用户拥有什么浏览器。
$('a.new-window-if-instagram').on('click', function(evt){
if(navigator.userAgent.includes("Instagram")){
if (/android/i.test(navigator.userAgent)) {
evt.preventDefault();
var url = $(this).attr('href').replace("https://", "googlechromes://");
url = url.replace("http://", "googlechrome://");
window.open(url, '_blank');
return false;
}
if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
// Safari doest have URI scheme...
}
}
return true;
});
【问题讨论】:
-
嗨,Arivan,你有解决方案吗?我也有类似的问题。
-
@tiakham 很遗憾没有,但我们做了一个解决方法:当 Instagram 用户登陆我们的网站时,我们会显示一个弹出窗口,告诉他在本机浏览器中打开该网站。
-
这对你有用:) 我的问题是 Facebook 应用内浏览器在点击广告时无法打开我们的网站。我们生活的这个问题只发生在 ios 版本 14.7.1 中,甚至没有发生在旧版本中。我想处理它以强制它使用默认浏览器,但据我所知,这可能并不容易。我试图解决您所做的问题,但网站直接显示错误,并且我放置错误消息的链接无法重定向。谢谢,继续搜索:)
标签: javascript html cross-browser instagram