吴小邪
吴小邪
  • 发布:2017-12-26 19:02
  • 更新:2017-12-26 22:07
  • 阅读:1344

【报Bug】安卓机webview setJsFile方法与ios系统执行的时机不一致。

分类:HTML5+

详细问题描述
[内容]安卓机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

2017-12-26 19:02 负责人:无 分享
已邀请:
移动达人

移动达人

用evaljs来注入吧,注入js文件ios和安卓运行不一致,很多问题一直没解决。

  • 回梦無痕

    evaljs注入ios和安卓端运行情况也不一样。。。

    2017-12-27 08:36

  • 吴小邪 (作者)

    嗯,确实是如此的,evaljs注入也不一样,导致注入的js运行的时机不一样

    2017-12-27 19:58

  • 第七十三天至

    回复 吴小邪: 解决了吗?

    2019-11-22 12:23

该问题目前已经被锁定, 无法添加新回复