枫桥居APP
枫桥居APP
  • 发布:2015-07-12 15:56
  • 更新:2015-07-13 11:40
  • 阅读:5560

appendJsFile向webview注入js以后,我再用loadURL请问我注入的js会被清空吗?

分类:HTML5+
            subWebview.addEventListener('loaded', function() {  
                setTimeout(function() {  
                    subWebview.show();  
                }, 50);  
            });  
            subWebview.appendJsFile("_www/js/mui.min.js");   
            subWebview.appendJsFile("_www/js/common.js");  
            subWebview.hide();  
            headerWebview.append(subWebview);

为了减少远程页面的体积,我向把mui.js注入到webview去,因为这个文件不会改动。每次切换页面通过loadURL实现,现在有个疑惑,appendJsFile向webview注入js以后,我再用loadURL请问我注入的js会被清空吗?需不需要每次loadURL的时候重新注入一遍?

2015-07-12 15:56 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_CHB

DCloud_UNI_CHB

首先,appendJsFile注入文件后,webview再次通过loadURL加载其它页面时,之前注入的js文件会再次自动注入,不需要手动重新注入。

其次,appendJsFile方法仅为了解决服务端页面不方面修改或引入js文件的情况,并不适用于楼上两位的情况。appendJsFile虽然会自动注入,但他是每个页面都注入(loadURL时重新注入),且注入时机稍晚(plusReady事件之后),效率上不如直接引用script节点。

另一方面,直接引用script节点,还会利用webview的缓存机制,提高加载效率。

  • 枫桥居APP (作者)

    非常感谢,介绍的很详细

    2015-07-13 11:41

  • 1***@qq.com

    你好请问 ios 的 appendJsFile注入 好像有时机问题 plusReady这些都不会触发 android 正常,请问怎么解决

    2019-11-07 15:56

chender

chender - 与人为善

不用再注入一遍了,这个功能我有在用,不过和你那边情景稍微有点不一样,我的js文件都在本地,我是为了提高app效益,也是把一些公共的js文件先加载到webview中

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