uni-app loadURL事件,监听加载实现不了

uni-app loadURL事件,监听加载实现不了

22 回复

var wvMain = plus.webview.create(“http://www.qq.com/”, “wvmain”);

wvMain.show();

wvMain.addEventListener(“loading”, function(){
plus.nativeUI.showWaiting();

setTimeout(function(){  
    plus.nativeUI.closeWaiting();  
}, 3000);  

});

wvMain.addEventListener(“loaded”, function(){
plus.nativeUI.closeWaiting();
}); 第一个问题,可以这样做。

更多关于uni-app loadURL事件,监听加载实现不了的实战教程也可以访问 https://www.itying.com/category-93-b0.html


你没理解我什么意思,我是用自定义的方式穿url参数,在父页面监听自定义的事件实现loadURL事件,问题是在监听自定义事件里再监听加载loaded事件就没效果,就是在loadURL外面包一层监听loaded的事件就不行

不应该,做个最小测试例验证下。
sdk是从社区单独下载的,不包括在HBuilder里。

贴出来完整代码。
你的nw这个webview不是当前页面的webview吧,如果是当前的webview,那么是不行的。必须在其他页面才可以。

我的nw就是当前webview啊,在子页面操作传url到当前页重载新页面,我想在重载url的时候有等待框,并且在重载成功后等待框消失

【支持ios端webview的transparent属性】?真的么?

h5+sdk最新日志上有写,但是hbuilder还不行

哪里看到的?可否给个链接?

回复 DCloud_IOS_XTY: 意思是离线打包不支持?为啥?是最新功能还没有发布是吗?

HB调试不支持,还未正式发版

回复 maq:离线打包支持的,HB调试还不行

回复 卡卡啦:嗯,谢谢你。应该是下载最新的 SDK 再离线打包就可以了。

这个 transparent 挺有用,可以用来实现多 webview 组合情况下的 popover,否则 popover 基本没法用。但即便 iOS 支持 transparent,可低版本的 Android 不支持,仍然有些鸡肋,还是不敢用,唉~~

我的nw就是当前webview啊,在子页面操作传url到当前页重载新页面,我想在重载url的时候有等待框,并且在重载成功后等待框消失

webview.addEventListener(‘loaded’, function() {…}); 这个可以监听到页面加载完成的事件,但必须是在调用 loadURL() 那个 js 里进行监听,不能在被 reload 的那个页面里监听(因为整个页面都被 reload 了,里面原来的 js 自然也都失效了)。

回复 maq:对啊,我就是在调用loadurl那里调用loaded事件啊,就是没效果

额……其实我只能确定在创建 webview 之后能监听到 loaded 事件,至于 loadURL() 的时候是否能再次触发这个事件,我不能确定,做个试验应该不难,只是我现在没时间 :(

回复 maq:不要在当前webview里边监听事件,然后loadURL,这样事件是不可靠的。需要在其他页面创建该webview的时候,监听事件。保证事件句柄不会因为loadURL被移除掉

回复 DCloud_UNI_FXY:是这样的。我前面的回复说的也是这个意思。现在我不能确定的是另外一个问题:webview 的 loaded 事件在 loadURL() 之后是否能够再次触发?

回复 maq:可以的,做了一个小demo,测试可以

回复 卡卡啦: ^_^

在uni-app中监听页面加载状态,可以通过onLoad生命周期或uni.navigateToevents参数实现。如果是指Webview加载URL,可以使用plus.webview.createloaded事件。常见问题排查:

  1. 确保在正确生命周期监听:
onLoad() {
  console.log('页面加载完成')
}
  1. Webview加载监听示例:
const wv = plus.webview.create('url')
wv.addEventListener('loaded', () => {
  console.log('网页加载完成')
})
回到顶部