微信小程序 使用 web-view实例上的函数和window函数
时间: 2023-08-15 15:03:05 浏览: 590
关于微信小程序webview的使用
5星 · 资源好评率100%
在微信小程序中,可以通过 `web-view` 标签加载一个 web 页面,并且可以在该页面中调用一些函数。同时,也可以在小程序中通过 `wx` 对象调用一些 `web-view` 实例上的函数。
以下是一些示例代码:
1. 在 `web-view` 页面中调用 `window` 上的函数
在 web 页面中,可以使用 `window` 对象定义一个自定义函数,例如:
```js
function customFunc() {
console.log('custom function called');
}
```
然后在页面中的某个事件或函数中调用该函数,例如:
```js
document.getElementById('btn').addEventListener('click', function() {
window.customFunc();
});
```
在小程序中,则可以通过 `wx.createWebViewContext` 方法获取 `web-view` 实例的上下文对象,然后使用 `postMessage` 方法向页面发送消息,从而调用该函数,例如:
```js
const webViewContext = wx.createWebViewContext('web-view');
webViewContext.postMessage({type: 'callCustomFunc'});
```
在 web 页面中,则需要监听 `message` 事件,当收到消息时调用相应的函数,例如:
```js
window.addEventListener('message', function(event) {
if (event.data.type === 'callCustomFunc') {
customFunc();
}
});
```
2. 在小程序中调用 `web-view` 实例上的函数
在小程序中,可以通过 `wx.createWebViewContext` 方法获取 `web-view` 实例的上下文对象,然后直接调用该对象上的函数,例如:
```js
const webViewContext = wx.createWebViewContext('web-view');
webViewContext.postMessage({type: 'callWebViewFunc'});
```
在 web 页面中,则需要监听 `message` 事件,当收到消息时调用相应的函数,例如:
```js
window.addEventListener('message', function(event) {
if (event.data.type === 'callWebViewFunc') {
// 调用 web-view 实例上的函数
console.log('web-view function called');
}
});
```
阅读全文