Skip to content

混合开发 - 组件介绍

介绍

xWebviewU,原生组件插件,定制化,非官方的webview,而是原生重写,权限控制等非常细致。

平台兼容

HarmonyandriodIOSUTSUNIAPP-X SDKversion
☑️☑️4.86+1.1.20

文件路径

ts

@/uni_modules/tmx-ui/x-webview-u/

使用

ts

<x-webview-u></x-webview-u>

Props 属性

名称说明类型默认值
height容器高,px,%,rpxstring100%
width容器宽,px,%,rpxstring100%
schemaapp唤起协议白名单,在此协议内允许跳转并拉起app,tel:,mailto:,sms:等协议拉起拨号盘,发邮件,发短信string[][]
allowLoadUrlWhiteapp在跳链接时的白名单,如果域名不在此内无法跳转,如果为空则放行所有string[][]
allowLoadUrl[仅安卓支持]url连接跳转时是否允许访问返回false禁止,true放行(url : string | null) => boolean(url : string | null) => true
addInterceptor执行宿主的任何方法都会先经过本函数验证返回true放行,false禁止执行(url : string | null,name:string) => boolean(url : string | null,name:string) => true
progressChanged页面加载时,进度百分比回调函数(current:number) => void(current:number) => void
showLoadProgress是否显示加载进度条booleantrue
loadProgressColor加载进度条颜色string#00ca6c
url加载的urlstringhttps://x-ui.design
webConfig用于在所有打开的页面中注入的一个数据,任何页面可以在web中执行:tmuiApp.getConfig()得到这个数据,用于在web通过数据校验等是否允许访问或者你的其它场景所使用。UTSJSONObject{}
callMethod说明见下(message:xWebviewUCallMethodType)=>void(message:xWebviewUCallMethodType)=>{}

callMethod属性说明

这是一个双向通信的属性方法。

  • web执行tmuijJssdk.js中的特定方法tmuijJssdk.callMethod,会触发此方法,
  • 本函数中得到的参数:message
  • message.data js向宿主发送的数据
  • message.success(返回值数据),在web端可以收到此方法返回的结果,tmuijJssdk.callMethod是一个异步函数会等待本方法返回结果。
  • message.fail(出错信息字符串)
  • 其中usccess,fail函数必须执行一个,在收到本消息后。

Events 事件

名称参数说明
init-webview创建初始成功
pageStart(url:string|null)页面加载时触发
pageFinish(url:string|null)页面加载错误时触发
pageError(url:string|null)页面加载错误时触发
contentheightchange(url:number)body高变化时触发
download(event:{url:string , userAgent:string , contentDisposition:string , mimeType:string , contentLength:number})页面发起下载链接时触发
postMessage(event:{detail:string})web通过tmuiJssdk.postMessage向宿主app发消息时触发

Slots 插槽

名称说明数据
---

Ref 方法

名称参数返回值说明
navback--后退
refresh--刷新
forward--前进
clearCache--强制清缓存并刷新页面
setUserAgentagent ?: string-设置webview用户代理字符串
getUserAgent--返回webview用户代理字符串
loadUrlurl : string-加载url,只支持远程链接
evaJsjsCode : stringPromise<string | null>宿主执行web函数(一定要挂载到全局window下)或者代码片断,如果反过来web执行宿主app方法见属性webCallMethod

示例文件路径

见代码仓库混合开发中的demo,apk示例:

示例源码

uvue
vue
<template>
	<view class="flex-1 ">
		<x-webview-u  ref="webu" :url="url"></x-webview-u>
	</view>
</template>

<script setup>
	import { useStore } from "../store"
	import { TmuiSchemaType } from "@/uni_modules/x-webview-u"
	const hostUrl = useStore.hostUrl;
	const webu = ref<ComponentPublicInstance|null>(null)
	const url = ref(hostUrl+'cssvar')
	
</script>

<style>

</style>
最近更新