在 UniApp 中使用 plus.webview.create
创建 Webview 后,可以通过 evalJS
方法执行 JavaScript 代码并获取返回结果。以下是具体方法:
步骤说明
- 创建 Webview:使用
plus.webview.create
创建新的 Webview 实例。
- 执行
evalJS
:调用 Webview 实例的 evalJS
方法,传入要执行的 JavaScript 代码字符串。
- 处理返回结果:
evalJS
是异步方法,通过回调函数获取执行结果。
代码示例
// 创建 Webview 实例
let webview = plus.webview.create('https://example.com', 'example', {
// 可选:配置 Webview 属性
});
// 执行 evalJS 并获取返回结果
webview.evalJS('(function() { return "Hello from Webview"; })()', function(result) {
// 回调函数中的 result 即为 JavaScript 执行后的返回值
console.log('evalJS 返回结果:', result); // 输出:Hello from Webview
});
注意事项
- 返回值类型:
evalJS
的返回值只能是基本类型(如字符串、数字、布尔值)或可序列化的对象。如果返回复杂对象(如函数或 DOM 元素),可能无法正确传递。
- 异步处理:
evalJS
是异步操作,确保在回调函数中处理结果,避免直接同步获取。
- 错误处理:如果执行的 JavaScript 代码有错误,回调函数中的
result
可能为 null
或 undefined
,建议在代码中添加错误捕获。
示例扩展
如果需要从 Webview 中返回复杂数据,可以使用 JSON 序列化:
webview.evalJS('(function() { return JSON.stringify({ key: "value" }); })()', function(result) {
let data = JSON.parse(result); // 解析为对象
console.log(data.key); // 输出:value
});
通过以上方法,您可以有效获取 evalJS
的执行结果。如有更多问题,欢迎继续咨询!