Web 组件
申请权限
"module": {
"requestPermissions": [
{"name": "ohos.permission.INTERNET"}
]
}
示例代码
import { webview } from '@kit.ArkWeb'
@Entry
@Component
struct WebComponent {
controller: webview.WebviewController = new webview.WebviewController()
build() {
Column() {
Web({
// 通过 $rawfile 加载本地资源文件
src: $rawfile('index.html'),
// 通过 resource 协议加载本地资源文件
src: 'resource://rawfile/index.html',
// 通过 resource 协议加载本地资源文件
src: 'www.example.com',
// 绑定控制器
controller: this.controller
})
}
}
}
webview 控制器
webview 是系统提供的基础能力,提供了许多 web 控制的能力
WebviewController
AskTs 和 Web 组件内网页的互相通信
import { webview } from '@kit.ArkWeb'
controller: webview.WebviewController = new webview.WebviewController()
// 给 Web 组件绑定 controller
Web({ src: $rawfile('index.html'), controller: this.controller })
.javaScriptAccess(true)
.onPageEnd(e => {
try {
// 调用网页内部函数,需要网页内部有 test 函数
this.controller.runJavaScript('test()')
} catch (error) {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
})
.onConfirm((event) => {
// 网页内部可以调用 confirm() 函数来给这里传值
console.log(event)
})
WebMessagePort
可以进行消息的发送以及接收 略
WebCookieManager
可以控制 Cookie 的各种行为 略
系列文章
参考资料
写在最后
- 不是教程,只是学习记录
- 包含了一些自己的理解,一边学一边写的,难免有不对的地方
- 写出来希望能与大家探讨,看到有错误的地方,望大家指正~