tk_宾
tk_宾
  • 发布:2015-12-30 14:44
  • 更新:2017-12-07 20:02
  • 阅读:13018

hbuilder打开外部链接后点击返回按钮时会把整个app给关闭了

分类:HBuilder
<A  target="_blank" <a href="index.php?ac=article&at=list&tid=186&id=&bid=12&se=se&wy=se">链接</A>

hbuilder用窗口嵌套打开外部链接后点击返回按钮时会把整个app给关闭了

2015-12-30 14:44 分享
已邀请:
hylong

hylong

使用mui可以正常back,是因为mui帮你监听了back。
自己写的话,需要自己监听,示例。

var wv = plus.webview.create(‘http://www.baidu.com’,'baidu')  
wv.evalJS("plus.key.addEventListener('backbutton',function () { plus.webview.currentWebview().close(); })");
五块钱的果汁

五块钱的果汁 - 勤奋是一种被逼无奈 - 热爱是一种情不自禁~

也可以将mui注入 第三方页面,自动处理返回

    var wv = plus.webview.create('http://www.baidu.com','baidu')  
         wv.appendJsFile('_www/src/assets/js/mui.min.js');

_www 是根目录

  • 269074245@qq.com

    虽然过了很多年,我也已经会了,但是还是要谢谢你!

    2019-09-15 16:10

269074245@qq.com

269074245@qq.com

兄弟,问题解决了没?和你一样问题。

水灵退散

水灵退散

在跳转的页面有没有添加mui.min.js

1656417255@qq.com

1656417255@qq.com

用两个webview,

736009557@qq.com

736009557@qq.com

使用 mui.openwindow 也是一样;
使用 plus.webview.currentWebview().append(page);
倒是能不关闭APP但是返回的是父级页面,子页面被替换掉了

124235531@qq.com

124235531@qq.com

主要就是在一个新的mui页面,用create打开需要的网址,然后用mui.back返回。其它的只是用户体验

mui.plusReady(function(){
var ws=plus.webview.currentWebview();//创建一个新的页面
var embed=plus.webview.create("http://www.baidu.com","http://www.baidu.com");//新的页面地址
embed.addEventListener('loading', function(e){
plus.nativeUI.showWaiting();//加载中,显示加载效果
}, false);
embed.addEventListener('loaded', function(e){
plus.nativeUI.closeWaiting();//加载完毕,关闭加载效果
embed.show();//显示页面
}, false);
var old_back = mui.back;//保存mui默认返回
var count = 0;//返回计数器
//重写返回效果
mui.back = function() {
embed.evalJS("history.go(-1)");//使用默认返回,非mui返回
count ++;
//返回两次提示
if (count == 2){
mui.toast("再点击一次返回键退出");
}
if (count == 3){
old_back();//第三次使用mui返回,退出当前页面
}
//超出3秒,重新计数
setTimeout(function(){
count = 0;
},3000);
}
});

引自同事写好的代码,把他的复制过来的,然后我加了一些注释。虽然不是自己写的,但是也让自己学会了一条新的思路

要回复问题请先登录注册