详细问题描述
[内容]安卓机webview setJsFile方法与ios系统执行的时机不一致。jsfile中重写了document.write等方法,ios中执行没问题,安卓手机上,等页面执行了完了原有的document.write方法后,才set进去我的重写的js代码,导致出现问题
重现步骤
[步骤]新建jsfile,然后在webview create后setJsFile 该js文件,
[结果]ios执行正确,在页面开始载入时触发js代码,安卓有问题,安卓会等页面执行完document.write方法后才注入js代码
[期望]
安卓机与苹果在执行setJSFile的时机一致
运行环境
[系统版本] win10
[浏览器版本]
[IDE版本]
8.9.1.201712121728
[mui版本]
附件
[代码片段]
document.write = function( text ){
};
document.writeln = function(text){
};
if(plus.os.name == 'Android') {
console.log('预加载js');
jiexiWebview.setJsFile('_www/js/test.js');
var hidejs = "console.log('evaljs');document.writeln = function(){console.log('writeln element');};";
// jiexiWebview.appendJsFile('./js/jquery.min.js');
// jiexiWebview.appendJsFile('./js/video_control.js');
jiexiWebview.evalJS(hidejs);
} else {
jiexiWebview.setJsFile('_www/js/ios_video.js');
}
[安装包]
联系方式
[QQ] 744922762
[电话] 13331022201
回梦無痕
evaljs注入ios和安卓端运行情况也不一样。。。
2017-12-27 08:36
吴小邪 (作者)
嗯,确实是如此的,evaljs注入也不一样,导致注入的js运行的时机不一样
2017-12-27 19:58
第七十三天至
回复 吴小邪: 解决了吗?
2019-11-22 12:23