原本我是用
window.open(url, '_blank')
发现这种返回方式直接就把app关掉了
又改成
if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
alert("我是app")
void plus.runtime.openWeb(url);
} else {
window.open(url, '_blank')
}
一般到这里就可以了
可是我这个url不是只跳转了一个页面,是先跳转到后台页面,让后台把登录信息加入session storage中,前端判断是否登录
反正一般的返回是无法做到的,只能是关闭这个页面
第一步引入mui
首先去官网链接: https://github.com/dcloudio/mui下载mui
这三个文件复制到assets下
import * as mui from "../../assets/js/mui.min.js"
会报这个错
vue3在babel.config.js 忽略mui.min.js文件
module.exports = {
presets: [
'@vue/app'
],
ignore: [
'./src/assets/js/mui.min.js'
]
}
vue2 在.baberlrc中忽略mui.min.js
若是有Eslint,则在.eslintignre中忽略mui.min.js,写法同上(没试过)
使用
if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
mui.init();
mui.plusReady(function() {
var self = plus.webview.currentWebview();
var url = res.result.url
var dlmnWV = plus.webview.create(url);
self.append(dlmnWV);
// mui.openWindow(dlmnWV);
var old_back = mui.back;
mui.back = function() {
if(plus.webview.all()[plus.webview.all().length-1].id==url){
var btn = ["确定", "取消"];
mui.confirm('确认关闭当前窗口?', '系统提示', btn, function(e) {
if (e.index == 0) {
//执行mui封装好的窗口关闭逻辑;
dlmnWV.close()
}
});
}else{
old_back()
}
}
})
//单页面可以多页面不行(多页面指连着跳转)
// void plus.runtime.openWeb(res.result.url);
} else {
window.open(res.result.url, '_blank')
}