防止苹果免签封装 app 跳转 Safari 浏览器(亲测方法分享)

沃森博客 2020年12月6日11:13:28分享发现评论1,583阅读模式

由于现在 APP 已经是非常广泛的使用了,所以对 app 的各项技术需求是非常迫切的。比如说现在很多朋友的项目还是 wap 网页,但是做一个原生的 app 费用非常昂贵,最廉价的方式就是直接封装打包一套 app,苹果安卓都有,直接就可以下载安装的最好。安卓倒好办,苹果的就麻烦些了。

这篇文章我们主要讲解苹果描述文件封装的一些问题,因为现在苹果签名是极度不稳定,极容易掉签名,所以诞生了描述文件封装。这个方法小编真的是举双手称好,成本极低,百分之百稳定,不存在掉签名这个说法,因为本身就没有签名证书的使用。

大家在封装 ios 描述文件的时候最容易遇到的一个问题就是,当我们使用 APP 的时候,随意点击描述文件 app 里面的超链接,就会跳转到 safari 浏览器中打开,这样的体验是极度不好的,给客户的感觉就是在访问网页是一样的,而且非常的不方便。

防止苹果免签封装 app 跳转 Safari 浏览器(亲测方法分享)

解决描述文件调换 Safari 方法

要跳转浏览器是因为描述文件封装的方法是调用的苹果浏览器自身的 Safari 浏览器,我们的 wap 网页封装到里面任意点击一个超链接就会调用 Safari 浏览器,所以会跳转。

这里我们需要添加一段仿跳转的代码即可.

防跳转代码如下

<script>

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);

}

</script>

我们需要把以上代码添加到,我们 wap 网页的 html 模板文件的<title></ title >下面即可,如果我们的模板文件是统一调用的一个头部文件,那只需要添加这一个头部文件就行;如果每个模板文件都有<title></ title >标签,那每个文件都需要添加哦,如果漏掉的文件,就会跳转浏览器,添加了的就不会跳转了。

还有一个办法,就是我们可以写一个 js,统一调用这个 js 就行了,不用每个文件都添加繁杂的代码。

js 代码如下:

(function(){

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);

}

}());

当你把上面的代码正确添加过后,你会惊奇的发现,你封装的免签描述文件 app,在里面浏览内容的时候就不会跳转浏览器了。方法是小编自己亲自测试并且自己正在使用的方法,方法真实有效,请认真对待。

沃森博客
  • 本文由 发表于 2020年12月6日11:13:28
  • 本文来自互利网收集整理,问题反馈联系邮箱:wosnnet@foxmail.com,转载请务必保留本文链接:https://wosn.net/4707.html

发表评论