我这边用js创建了一个webview, 这个网址是别人的,我没办法修改。
于是用过预加载JS ,把JS成功的在webview中执行了。
//创建webview
wv = plus.webview.create(self.url,"custom-webview",{
top:uni.getSystemInfoSync().statusBarHeight+44,
});
//预加载本地JS文件
wv.appendJsFile('static/js/uni.webview.1.5.2.js');
wv.appendJsFile('static/js/jsfun.js');
wv.show();
var currentWebview = this.$mp.page.$getAppWebview() //获取当前页面的webview对象
currentWebview.append(wv);
经测试,两个js都成功的在webview中加载了。
但是我想实现的功能是 让用户在webview中点击我的按钮,执行uniapp中的事件。
//这是jsfun 中的代码
//给按钮添加点击事件
i.addEventListener('click', function() {
//获取当前页面url
var url = location.href;
console.log('【前】::' + url);
//准备执行uniapp
document.addEventListener('UniAppJSBridgeReady', function() {
console.log('【中】::' + url);
uni.navigateTo({
url: 'play?url=' + encodeURIComponent(url)
});
});
//执行完毕
console.log('【后】::' + url);
});
上面的代码,只会执行 【前】和【后】,UniAppJSBridgeReady放到点击事件外面,也无法打印。
请大佬帮我看看,是哪方面的问题。
===========================分割线===========================
翻了一天社区文档和问答, 现在确定问题是 注入js的时间点有问题。
问题依旧, 继续查文档,有大佬知道怎么实现,拜托指点下
===========================补充demo===========================