webview 调用系统浏览器怎么解决
mui的页面,也就是webview的页面中包含多个list,每次点击其中一个list时,希望是在手机的浏览器中打开,不要在webview中打开,要怎么操作呢?
mui的open方法是不能用的,location.href / windown.open 都不起作用。
如果把点击事件放在mui.plusReady(function(){}中,因为用到5+,但是在手机上测试时,点击也不跳转:
mui.plusReady(function(){
if(plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_NONE){
mui.toast("当前网络不给力,无法加载广告");
}else{
//屏幕真实宽度
var width = window.innerWidth;
var height = window.innerHeight;
var adHeight = parseInt(width)*3/20;
var adBottom = mui.os.ios?('-'+adHeight+'px'):'0';
var ad = plus.webview.create(url,'ad',{height:adHeight+'px',bottom:adBottom,position:"absolute"});
//目前Android平台不支持子webview的setStyle动画,因此分平台处理;
if(mui.os.ios){
//为了支持iOS平台左侧边缘滑动关闭页面,需要append进去;
plus.webview.currentWebview().append(ad);
ad.addEventListener('loaded',function () {
ad.setStyle({
bottom:'0',
transition: {
duration: 150
}
});
});
}else{
ad.addEventListener('loaded',function () {
ad.show('slide-in-bottom');
});
}
//设置主页面的底部留白,否则会被遮住;
document.querySelector('.mui-content').style.paddingBottom = adHeight + 'px';
}
//点击打开下载的文件
jQuery('#downloadNav').find('.download-name').on('tap',function(e){
e.stopPropagation();
var url = jQuery(this).attr('data-url');
var href = this.getAttribute('href');
if (url) {
if (window.plus) {
plus.runtime.openURL(url);
} else {
location.href = url;//在网页中执行这一句,报个警告
//警告信息:mui.min.js:7 [Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/5093566007214080
}
}
});
})
如果把点击事件放在mui.ready(function() {}中,在网页测试时,是可以点击到的,也会正常跳转;但在手机上测试,不跳转:
mui.ready(function() {
//点击打开下载的文件
jQuery('#downloadNav').find('.download-name').on('tap',function(e){
e.stopPropagation();
var url = jQuery(this).attr('data-url');
var href = this.getAttribute('href');
if (url) {
if (window.plus) {
plus.runtime.openURL(url);
} else {
location.href = url;//仍然是执行的这一句,同样也有警告
//警告信息:download.html:297 Resource interpreted as Document but transferred with MIME type application/pdf: "http://www.beta.anviz.com/myanviz/download/storage/2017/August/week3/629845_Intellisight_User_Manual_EN-1.2.02.pdf".
//实际情况是我需要让这个地址在手机浏览器中打开:http://www.beta.anviz.com/myanviz/download/storage/2017/August/week3/629845_Intellisight_User_Manual_EN-1.2.02.pdf
}
}
});
}
这是mui的一个例子,我是根据这个例子来写的,mui广告模板,可以跳转它可以从webview跳到手机的浏览器中的,但是我却打不开,请求各位是否可以帮我指点一下,我是哪里写的不对呢?
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没用过mui,只能说个大概。这句的意思感觉像是,调用了内置的api去打开app外部的浏览器。
给了思路:可以让app去打开外部的浏览器。
前端只需要跟app端定义好接口,把url传给app端,由app端负责打开外部浏览器,并显示接收到的url。