复制链接到safari浏览器打开_javascript实现阻止iOS APP中的链接打开Safari浏览器

上次根据网上的教程给自己的网站弄了一个Web APP,但是给用户的感觉却十分糟糕。

问题说明:

怎么了?原来是打开WEB APP后在主页上随意打开连接,就会自作主张地打开Safari浏览器。原来好好的伪装和心情就全被破坏掉了。这该如何是好?原来解决方法十分简单。仅仅加入这些代码就好了。实验测试在本人的 iPhone (iOS 7.1)和iPod (iOS 6.1.4)上测试通过,根据原作者的叙述,最新的 iOS 7.0.4(iPhone 与 iPad)测试通过,代码应该兼容性不错,在这里分享:

问题解决:

//iOS Web APP中点击链接跳转到Safari 浏览器新标签页的问题

if ((“standalone” in window.navigator) && window.navigator.standalone) {

var noddy, remotes = false;

document.addEventListener(‘click',

function(event) {

noddy = event.target;

while (noddy.nodeName !== “A” && noddy.nodeName !== “HTML”) {

noddy = noddy.parentNode;

}

if (‘href' in noddy && noddy.href.indexOf(‘http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes)) {

event.preventDefault();

document.location.href = noddy.href;

}

},

false);

}

建议将代码放到/head标签前,当然,另外存为一个js 文件引用也是可以的。

### 微信小程序中安卓端点击后自动跳转到手机外部浏览器打开APP下载链接的功能实现 为了实现在微信小程序中,当用户在安卓设备上点击某个按钮时能够自动跳转到手机外部浏览器打开APP下载链接的功能,可以参考以下技术方案: #### 技术背景 由于微信内置浏览器的安全策略限制,在微信环境中直接触发外部浏览器的行为需要特定的技术手段。对于安卓平台而言,可以通过`WebView`的特性以及URL Scheme机制来间接实现这一目标[^2]。 #### 解决思路 1. **利用微信内置浏览器的局限性** 当前微信环境下的H5页面如果尝试直接调用外部应用或强制跳转外部浏览器,通常会被阻止。然而,通过某些特殊的方式(如模拟文件下载行为),仍然可以在一定程度上绕过这些限制[^3]。 2. **具体实现逻辑** 针对安卓设备,可以通过创建一个隐藏的iframe标签,并将其src属性设置为目标下载链接的方式来诱导微信内部浏览器主动唤起系统的默认浏览器。以下是具体的代码示例: ```javascript function redirectToExternalBrowser(url) { const iframe = document.createElement('iframe'); iframe.style.display = 'none'; iframe.src = url; document.body.appendChild(iframe); } ``` 上述代码片段的作用是在当前文档中动态插入一个不可见的iframe元素,并将它的源指向所需的下载地址。此操作往往会促使安卓版微信启动系统级浏览器加载对应资源。 3. **注意事项** - 对于iOS设备来说,这种方法未必有效,因为iOS上的Safari拥有更严格的沙盒保护措施。 - 如果希望兼容更多场景,则需额外考虑服务端配合下发不同类型的响应头(Content-Disposition字段设为attachment形式)从而进一步增强跨平台适配能力。 4. **补充说明** 此外需要注意的是,随着各大社交软件不断更新其安全防护政策,未来此类做法可能会面临更大的挑战甚至完全失效的风险。因此建议始终关注官方最新API文档和技术公告以便及时调整开发策略[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值