_roc_
_roc_
  • 发布:2023-08-30 16:09
  • 更新:2023-12-07 11:39
  • 阅读:446

【报Bug】webview创建后使用setJsFile设置js文件,在evalJS里面不能进行使用其方法的问题。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: window7

HBuilderX类型: 正式

HBuilderX版本号: 3.8.12

手机系统: Android

手机系统版本号: Android 14

手机厂商: 华为

手机机型: test

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

let nw = plus.webview.create();
nw.setJsFile('test.js');
nw.evalJS("使用setJsFile的方法")

预期结果:

需要使用方法,或是能帮我解决app通讯的问题。

实际结果:

需要使用方法,或是能帮我解决app通讯的问题。

bug描述:

let nw = plus.webview.create();
nw.setJsFile('test.js');
nw.evalJS("使用setJsFile的方法")

咨询下setJsFile 设置js文件后,不能在evalJS里面使用 setJSFile 里的方法嘛,我一使用就报Uncaught ReferenceError: receiveData is not defined

2023-08-30 16:09 负责人:无 分享
已邀请:
w***@gmail.com

w***@gmail.com

看setJsFile方法说明

预加载JS文件不需要在HTML页面中显式引用,在Webview窗口加载HTML页面时自动加载,在页面跳转时也会自动加载。 设置新的JS文件后将清空之前设置的值。

你光设置了JS,但是没加载网页,它也没用啊

即使不显示页面,你也应该调用loadURL加载个网页

nw = plus.webview.create();  
nw.setJsFile('/static/addFunc.js') // 注意路径要放对  
nw.loadURL('https://baidu.com') //加载个网页

然后,再在方法中调用试试

文档注意这部分

  • _roc_ (作者)

    有加载网页了,我只是写了示例出来而已。网页都显示出来再进行调用的,不然我怎么知道不能用方法呢

    2023-09-04 09:44

  • w***@gmail.com

    回复 _roc_: 那不行先简单调个alert试试看能不能弹窗,如果能就说明自己写的这个js没加载进去

    2023-09-04 09:49

  • _roc_ (作者)

    回复 w***@gmail.com: 功能都能使用就是 setJsFile 的函数和 evalJs 不能调用setJsFile 里的方法

    2023-09-04 10:02

  • w***@gmail.com

    回复 _roc_: 那可能就是加载路径问题了,先放static目录下试试吧

    2023-09-04 10:08

  • _roc_ (作者)

    回复 w***@gmail.com: 好的谢谢

    2023-09-04 14:17

h***@eastbabel.cn

h***@eastbabel.cn

我是试着 监听页面加载完成后,再重新设置了一遍预加载文件

nw.addEventListener('loaded', function(e) {  
    console.log('webview loaded');  
    nw.setJsFile('/static/addFunc.js')  
})

要回复问题请先登录注册