学习鸿蒙,我学到的东西与浅显理解(2-4、Web 和 WebView)

90 阅读1分钟

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 的各种行为 略


系列文章


参考资料


写在最后

  • 不是教程,只是学习记录
  • 包含了一些自己的理解,一边学一边写的,难免有不对的地方
  • 写出来希望能与大家探讨,看到有错误的地方,望大家指正~