成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談ArkUI之Web組件的基礎用法

開發 后端
在ArkUI中,Web組件用于顯示Web網頁,可以理解為一個嵌入式的小型瀏覽器,用于展示Web內容,實現Web的混合開發。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

最近研究了ArkUI中的一些常用組件,其中Web組件是很常用且相對獨立的一種組件。本文總結了Web組件的常用函數,以及基本用法。先來一個AI畫的Web組件助助興(好吧,不能說毫無關系,只能說一點也不像):

在ArkUI中,Web組件用于顯示Web網頁,可以理解為一個嵌入式的小型瀏覽器,用于展示Web內容,實現Web的混合開發。例如,在API 9中目前還沒有地圖組件可用,那么我們就可以借助Web組件顯示OpenLayers、OSM等提供的地圖空間和地圖服務。據說ArkUI的Web組件采用了chromium內核,應當還是非常高效的。

1、開發環境要求

● DevEco Studio版本:DevEco Studio 3.1 Release
● HarmonyOS SDK版本:API version 9

2、基本用法

使用Web組件分為3個基本步驟:

導入WebView庫。
import webview from '@ohos.web.webview';

創建Web視圖控制器(WebViewController):通過Web視圖控制器可以對Web組件的顯示內容進行控制,實現加載、交互等操作。

webCtr : webview.WebviewController = new webview.WebviewController();

創建Web組件:在創建Web組件時可以傳入默認加載地址和控制器對象。比如,默認加載百度網站的首頁,代碼如下:

Web({src : "https://m.baidu.com", controller : this.webCtr})

此時,這個Web組件就和webCtr對象綁定在一起了。開發者就可以通過webCtr對象的方法對Web組件中的內容進行控制了。
不要忘了,訪問網站時需要添加互聯網訪問權限。在entry模塊下的module.json5文件中,添加ohos.permission.INTERNET權限,代碼如下:

{
  "module": {
    ...
    "requestPermissions": [
      {"name": "ohos.permission.INTERNET"}
    ], ...
  } ...
}

隨后,運行程序就可以顯示相應的頁面了,顯示效果如下:

3、頁面加載

加載互聯網頁面的代碼如下:

this.webCtr.loadUrl('m.bilibili.com');

加載本地頁面的代碼如下:

this.webCtr.loadUrl($rawfile("test.html"));

前提是需要將test.html加入到entry/src/main/resources/rawfile目錄下。
當然,還可以通過loadData函數加載HTML代碼,這種方式通常用于顯示簡單的數據。例如,通過loadData顯示“Hello, HarmonyOS”,代碼如下:

this.controller.loadData(
"<html><body>Hello, <b>Harmony<span style="text-decoration:underline;">O</span>S</b></body></html>",
"text/html",
"UTF-8"
);

loadData有3個參數,第一個是文本代碼,第二個用于指定文本代碼的格式,如text/html、text/plain等;第三個是字符編碼方式,如UTF-8、GB2312、GBK等

顯示效果如所示:

#星計劃#淺談ArkUI之Web組件的基礎用法-鴻蒙開發者社區#星計劃#淺談ArkUI之Web組件的基礎用法-鴻蒙開發者社區

4、頁面交互

頁面交互包括在ArkTS中執行Web組件中的JavaScript函數以及對象注入等2個主要功能。另外,還可以通過createWebMessagePorts函數創建消息端口來實現Web組件和ArkTS語言環境的數據通信,輕松實現數據傳遞。

調用JavaScript函數。
通過runJavaScript函數就可以輕松實現前端函數的調用,代碼如下:

this.webviewController.runJavaScript('run()');

當然,前端要提前設計好run()函數才可以正常運行。

對象注入。
所謂對象注入,就是將ArkTS的對象注入到Web組件的前端代碼中。例如,在ArkTS中定義Test類,代碼如下:

class Test {
  constructor() {
  }

  hello(): string {
    return "Hello, JavaScript!";
  }

  toString(): void {
    console.log('This is from ArkTS');
  }
}

創建Test類的實例,代碼如下:

@State test: Test = new Test();

最后,即可通過Web組件的javaScriptProxy函數將test對象注入到前端代碼中:

Web({ ... })
  .javaScriptProxy({
    object: this.test,
    name: "jsTest",
    methodList: ["hello", "toString"],
    controller: this.webCtr
})

其中,object用于指定需要注入的對象;name表示注入后的對象名稱;methodList用于聲明注入對象的函數;controller指定了Web視圖控制器。
當然,還可以通過WebViewController的registerJavaScriptProxy函數注入對象,代碼如下:

this.webCtr.registerJavaScriptProxy(this.test, "jsTest", ["hello", "toString"]);

隨后,在前端就可以訪問到jsTest對象,代碼如下:

let str = jsTest.hello();
let st2 = jsTest.toString();

5、頁面調試

在DevEco Studio中,通過DevTools工具可以很輕松地對Web組件中的頁面進行調試,不過,需要通過setWebDebuggingAccess函數開啟調試模式,代碼如下:

this.webCtr.setWebDebuggingAccess(true);

隨后,通過以下命令在電腦端配置映射,如下所示:

// 添加映射 
hdc fport tcp:9222 tcp:9222 
// 查看映射 
hdc fport ls

映射建立成功后,就可以通過Chrome、Edge等瀏覽器通過USB線對Web頁面進行調試了。在頁面中輸入地址chrome://inspect/#devices,即可調試Web組件中的界面了。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2021-12-03 09:49:59

鴻蒙HarmonyOS應用

2023-08-26 11:32:07

2022-03-17 16:04:16

Text文本組件Button組件Column

2022-05-20 14:34:20

list組件鴻蒙操作系統

2009-06-25 13:03:48

JSF的UI組件

2021-09-16 10:05:09

鴻蒙HarmonyOS應用

2022-10-09 15:13:18

TextPickerArkUI eTS

2021-11-24 10:02:53

鴻蒙HarmonyOS應用

2022-10-10 14:51:51

ArkUI eTSPieChart組件

2021-10-14 15:14:36

鴻蒙HarmonyOS應用

2011-06-09 15:15:52

RAII

2023-05-29 13:03:54

GPUWebWebGPU

2023-02-27 09:10:57

前端組件設計

2009-07-15 13:06:38

Swing組件

2017-06-06 10:30:12

前端Web寬度自適應

2022-09-13 09:31:59

Python內置函數lambda

2011-08-01 15:57:58

2022-07-06 20:24:08

ArkUI計時組件

2022-10-24 14:49:54

ArkUI心電圖組件

2022-07-04 16:34:46

流光按鈕Stack
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久国产综合精品麻豆 | 99成人免费视频 | 一级黄a视频 | 日韩精品成人一区二区三区视频 | 午夜网站视频 | 国产免费一区二区 | 国产精品精品3d动漫 | 中国一级特黄毛片大片 | 成人精品一区二区 | 日韩精品专区在线影院重磅 | 一级免费毛片 | 欧美中文视频 | 午夜天堂精品久久久久 | 永久看片 | 日本91av视频 | 国产小视频自拍 | 国产日韩欧美精品一区二区 | wwwxxx日本在线观看 | 国产在线第一页 | 欧美一级高潮片免费的 | 91九色在线观看 | 免费在线视频一区二区 | 国产一区二区三区四区 | 精品福利在线 | 亚洲欧美中文日韩在线v日本 | 亚洲另类自拍 | 欧美国产在线一区 | 91五月婷蜜桃综合 | 国产精品一区二区久久 | 伊人伊成久久人综合网站 | 国产成人精品一区二区三区网站观看 | 最新日韩在线 | 亚洲国产精品一区二区三区 | 最新国产精品视频 | 久久99这里只有精品 | a级大片免费观看 | 国产欧美在线视频 | 亚洲一区不卡在线 | 中文字幕免费视频 | 中文字幕在线第一页 | 婷婷久久五月 |