我正在尝试将用户的移动网络应用重定向到使用Chrome而不是Safari。我尝试使用以下内容:
<script>
javascript:location.href="googlechrome"+location.href.substring(4);
</script>
然而,这会不断打开Chrome中的标签圈。你知道我怎么能成功做到这一点吗?
干杯, 达拉
答案 0 :(得分:4)
这将导致每次加载网页时都会打开页面,无论您是在Safari还是Chrome中。这也是非常糟糕的用户体验,只需将用户转发到另一个浏览器而无需输入。
最好让用户有一些方法在Chrome中打开您的网站,并解释为什么需要它。
https
和回调还有其他方案:https://developer.chrome.com/multidevice/ios/links#uri_schemes
<p>This webapp is best viewed in Google Chrome</p>
<button type="button" onclick="openInChrome()">Open in Chrome</button>
<script>
var openInChrome = function() {
if (/^((?!Chrome).)*(Safari)+.*$/.test(navigator.userAgent)) {
var protocol = location.href.substring(0,location.href.indexOf(':'));
var url = location.href.substring(location.href.indexOf(':'));
if (protocol === "http") {
location.href = "googlechrome" + url;
}
else {
location.href = "googlechromes" + url;
}
}
}
</script>
修改强>
添加了一项检查以验证它们是否在Safari中。
答案 1 :(得分:1)
嗯,原因很明显; Chrome也被指示打开Chrome。您只需要一个userAgent条件。
RedirectToIdentityProvider
我会继续关于用户代理检查错误的标准咆哮,但我相信你所说的这是一个私人网络应用程序。由于iOS不允许您更改默认浏览器,我想这是一个公平的解决方法。