简体中文
组件类型:UniWebViewElement
承载网页的容器
Android | iOS | web |
---|---|---|
3.9 | 4.11 | 4.0 |
名称 | 类型 | 默认值 | 描述 | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
src | string(string.URIString) | - | webview 指向网页的链接 | |||||||||||||||||||||||||
webview-styles | WebViewStyles | {"progress":{"color":"#00FF00"}} | webview 网络地址页面加载进度条样式 | |||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
horizontalScrollBarAccess | boolean | true | 设置是否显示横向滚动条 | |||||||||||||||||||||||||
verticalScrollBarAccess | boolean | true | 设置是否显示纵向滚动条 | |||||||||||||||||||||||||
@message | (event: UniWebViewMessageEvent) => void | - | 网页向应用 postMessage 时触发。e.detail = { data } | |||||||||||||||||||||||||
@error | (event: UniWebViewErrorEvent) => void | - | 网页加载错误时触发。e.detail = { errSubject, errCode, errMsg, url, fullUrl, src } | |||||||||||||||||||||||||
@load | (event: UniWebViewLoadEvent) => void | - | 网页加载完成后触发。e.detail = { url, src } | |||||||||||||||||||||||||
(event: UniWebViewLoadEvent) => void | - | 网页加载完成后触发。e.detail = { url, src }。已废弃,请改用load | ||||||||||||||||||||||||||
@loading | (event: UniWebViewLoadingEvent) => void | - | 网页加载中触发。e.detail = { url, src } | |||||||||||||||||||||||||
@download | (event: UniWebViewDownloadEvent) => void | - | 点击网页中可下载链接时触发。e.detail = { url, userAgent, contentDisposition, mimetype, contentLength } |
名称 | 类型 | 必填 | 默认值 | 描述 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | string | 是 | - | 事件类型,固定值message | ||||||||||
detail | UniWebViewMessageEventDetail | 是 | - | - | ||||||||||
| ||||||||||||||
bubbles | boolean | 是 | - | 是否冒泡 | ||||||||||
cancelable | boolean | 是 | - | 是否可以取消 | ||||||||||
target | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | ||||||||||
currentTarget | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | ||||||||||
timeStamp | number | 是 | - | 事件发生时的时间戳 |
名称 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
stopPropagation | () => void | 是 | - | 阻止当前事件的进一步传播 |
preventDefault | () => void | 是 | - | 阻止当前事件的默认行为 |
名称 | 类型 | 必填 | 默认值 | 描述 | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | string | 是 | - | 事件类型,固定值error | |||||||||||||||||||||||||||||||||||
detail | UniWebViewErrorEventDetail | 是 | - | - | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||
bubbles | boolean | 是 | - | 是否冒泡 | |||||||||||||||||||||||||||||||||||
cancelable | boolean | 是 | - | 是否可以取消 | |||||||||||||||||||||||||||||||||||
target | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | |||||||||||||||||||||||||||||||||||
currentTarget | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | |||||||||||||||||||||||||||||||||||
timeStamp | number | 是 | - | 事件发生时的时间戳 |
名称 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
stopPropagation | () => void | 是 | - | 阻止当前事件的进一步传播 |
preventDefault | () => void | 是 | - | 阻止当前事件的默认行为 |
名称 | 类型 | 必填 | 默认值 | 描述 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | string | 是 | - | 事件类型,固定值load | |||||||||||||||
detail | UniWebViewLoadEventDetail | 是 | - | - | |||||||||||||||
| |||||||||||||||||||
bubbles | boolean | 是 | - | 是否冒泡 | |||||||||||||||
cancelable | boolean | 是 | - | 是否可以取消 | |||||||||||||||
target | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | |||||||||||||||
currentTarget | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | |||||||||||||||
timeStamp | number | 是 | - | 事件发生时的时间戳 |
名称 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
stopPropagation | () => void | 是 | - | 阻止当前事件的进一步传播 |
preventDefault | () => void | 是 | - | 阻止当前事件的默认行为 |
名称 | 类型 | 必填 | 默认值 | 描述 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | string | 是 | - | 事件类型,固定值loading | |||||||||||||||
detail | UniWebViewLoadingEventDetail | 是 | - | - | |||||||||||||||
| |||||||||||||||||||
bubbles | boolean | 是 | - | 是否冒泡 | |||||||||||||||
cancelable | boolean | 是 | - | 是否可以取消 | |||||||||||||||
target | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | |||||||||||||||
currentTarget | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | |||||||||||||||
timeStamp | number | 是 | - | 事件发生时的时间戳 |
名称 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
stopPropagation | () => void | 是 | - | 阻止当前事件的进一步传播 |
preventDefault | () => void | 是 | - | 阻止当前事件的默认行为 |
名称 | 类型 | 必填 | 默认值 | 描述 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | string | 是 | - | 事件类型,固定值download | ||||||||||||||||||||||||||||||
detail | UniWebViewDownloadEventDetail | 是 | - | - | ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
bubbles | boolean | 是 | - | 是否冒泡 | ||||||||||||||||||||||||||||||
cancelable | boolean | 是 | - | 是否可以取消 | ||||||||||||||||||||||||||||||
target | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | ||||||||||||||||||||||||||||||
currentTarget | UniElement | null | 否 | - | UVUE DOM 元素对象,描述了 UVUE DOM 元素所普通具有的属性和方法。 | ||||||||||||||||||||||||||||||
timeStamp | number | 是 | - | 事件发生时的时间戳 |
名称 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
stopPropagation | () => void | 是 | - | 阻止当前事件的进一步传播 |
preventDefault | () => void | 是 | - | 阻止当前事件的默认行为 |
web-view元素对象
后退
前进
重新加载
停止加载
原生和WebView通信(执行JS脚本)
名称 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
js | string | 是 | - | - |
Android | iOS | web | |
---|---|---|---|
src | 3.9 | 4.11 | 4.0 |
webview-styles | 3.9 | 4.11 | x |
horizontalScrollBarAccess | 4.11 | 4.13 | x |
verticalScrollBarAccess | 4.11 | 4.13 | x |
@message | 3.9 | 4.11 | x |
@error | 3.9 | 4.11 | x |
@load | 4.0 | 4.11 | x |
@loading | 3.9 | 4.11 | x |
@download | 3.9 | 4.11 | x |
不可以嵌套组件
Template
Script
<template>
<view class="uni-flex-item">
<web-view id="web-view" class="uni-flex-item" :src="src" :webview-styles="webview_styles"
:horizontalScrollBarAccess="horizontalScrollBarAccess" :verticalScrollBarAccess="verticalScrollBarAccess"
@message="message" @error="error" @loading="loading" @load="load" @download="download">
</web-view>
<!-- #ifdef APP -->
<view class="uni-padding-wrap uni-common-mt">
<view class="uni-btn-v">
<input class="uni-input" confirmType="go" placeholder="输入网址跳转" @confirm="confirm" maxlength="-1"/>
</view>
<view class="uni-row uni-btn-v">
<button class="uni-flex-item" type="primary" @click="back">后退</button>
<button class="margin-left-5 uni-flex-item" type="primary" @click="forward">前进</button>
</view>
<view class="uni-row uni-btn-v">
<button class="uni-flex-item" type="primary" @click="reload">重新加载</button>
<button class="margin-left-5 uni-flex-item" type="primary" @click="stop">停止加载</button>
</view>
<view class="uni-btn-v">
<button type="primary" @click="nativeToWeb">原生和Web通信</button>
</view>
<!-- #ifdef APP-ANDROID -->
<view class="uni-row uni-btn-v">
<view class="uni-row uni-flex-item align-items-center">
<text>显示横向滚动条</text>
<switch :checked="true" @change="changeHorizontalScrollBarAccess"></switch>
</view>
<view class="uni-row uni-flex-item align-items-center">
<text>显示竖向滚动条</text>
<switch :checked="true" @change="changeVerticalScrollBarAccess"></switch>
</view>
</view>
<!-- #endif -->
</view>
<!-- #endif -->
</view>
</template>
<style>
.margin-left-5 {
margin-left: 5px;
}
.align-items-center {
align-items: center;
}
</style>
web-view的操作api为uni.createWebviewContext()。
给web-view组件设一个id属性,将id的值传入uni.createWebviewContext(),即可得到web-view组件的上下文对象,进一步可使用.evalJS()
、.reload()
等方法。
uts向web-view的网页发消息
使用evalJS()
方法,详见上方示例代码
web-view里的网页向uts发消息
在网页中引入uni.webview.1.5.5.js。即可在网页中调用一批uni的api,包括:
方法名 | 说明 | 平台差异说明 |
---|---|---|
uni.webView.navigateTo | navigateTo | Web平台暂不支持 |
uni.webView.redirectTo | redirectTo | Web平台暂不支持 |
uni.webView.reLaunch | reLaunch | Web平台暂不支持 |
uni.webView.switchTab | switchTab | Web平台暂不支持 |
uni.webView.navigateBack | navigateBack | Web平台暂不支持 |
uni.webView.postMessage | 向应用发送消息 | Web平台暂不支持 |
在网页中使用uni.postMessage()
即可向uts发送消息。
uts端在 <web-view>
组件的 message
事件回调 event.detail.data
中接收消息。
示例代码详见hello-uni-app-x/hybrid/html/local.html
Tips
event.detail.data
中的数据,以数组的形式接收每次 post 的消息。(注:支付宝小程序除外,支付宝小程序中以对象形式接受)