国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【鴻蒙應用ArkTS開發(fā)系列】- Web組件使用講解

這篇具有很好參考價值的文章主要介紹了【鴻蒙應用ArkTS開發(fā)系列】- Web組件使用講解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、Web組件介紹

二、創(chuàng)建組件

權(quán)限列表

三、設置樣式和屬性

四、添加事件和方法

五、訪問本地Html

1、本地html文件創(chuàng)建

2、本地html文件加載

2、JS對象注入,Html使用JS對象調(diào)用客戶端方法

3、客戶端調(diào)用本地Html網(wǎng)頁中的JS方法


使用鴻蒙的ArkUI框架開發(fā)鴻蒙應用的時候,官方為我們提供了一個web組件,提供給開發(fā)者使用,通過本文學習,我們將了解并學會如何使用Web組件進行如下操作:

  • 在線網(wǎng)頁加載
  • 本地離線網(wǎng)頁加載
  • Web組件常用屬性設置
  • 客戶端與網(wǎng)頁之間的雙向通信交互

下面我們先來看下Web組件的介紹。

一、Web組件介紹

Web是提供網(wǎng)頁顯示能力的組件,具體用法請參考?Web API。

二、創(chuàng)建組件

在pages目錄下創(chuàng)建WebComponent .ets的Page頁面,? 頁面上放一個Web組件。在Web組件中通過src指定引用的網(wǎng)頁路徑,controller為組件的控制器,通過controller綁定Web組件,用于調(diào)用Web組件的方法。

?

@Entry

@Component

struct WebComponent {

??controller: WebController =?new?WebController();

??build() {

????Column() {

??????Web({ src:?'https://www.douban.com/', controller:?this.controller })

????}

??}

}

?

使用Web組件,訪問在線網(wǎng)頁,需要給應用配置網(wǎng)絡權(quán)限,

權(quán)限列表

訪問在線網(wǎng)頁時需添加網(wǎng)絡權(quán)限:ohos.permission.INTERNET

三、設置樣式和屬性

Web組件的使用需要添加豐富的頁面樣式和功能屬性。設置height、padding樣式可為Web組件添加高和內(nèi)邊距,設置fileAccess屬性可為Web組件添加文件訪問權(quán)限,設置javaScriptAccess屬性為true使Web組件具有執(zhí)行JavaScript代碼的能力。

?

@Entry

@Component

struct WebComponent {

??fileAccess: boolean =?true;

??controller: WebController =?new?WebController();

??build() {

????Column() {

??????Text('Hello world!')

????????.fontSize(20)

??????Web({ src:?'https://www.douban.com/', controller:?this.controller })

????????// 設置高和內(nèi)邊距

????????.height(500)

????????.padding(20)

????????// 設置文件訪問權(quán)限和腳本執(zhí)行權(quán)限

????????.fileAccess(this.fileAccess)

????????.javaScriptAccess(true)

??????Text('End')

????????.fontSize(20)

????}

??}

}

?

四、添加事件和方法

為Web組件添加onProgressChange事件,該事件回調(diào)Web引擎加載頁面的進度值。將該進度值賦值給Progress組件的value,控制Progress組件的狀態(tài)。當進度為100%時隱藏Progress組件,Web頁面加載完成。

?
import web_view from?'@ohos.web.webview';

@Entry

@Component

struct RemoteWebPage {

??@State progress: number = 0

??@State hideProgress: boolean =?true

??controller: web_view.WebviewController =?new?web_view.WebviewController()

??build() {

????Column() {

??????Progress({ total: 100, value:?this.progress })

????????.color('#ff5cea20')

????????.visibility(this.hideProgress ? Visibility.None : Visibility.Visible)

??????Web({ src:?'https://www.douban.com/', controller:?this.controller })

????????.height('100%')

????????// 添加onProgressChange事件

????????.onProgressChange(e => {

??????????this.progress = e.newProgress

?????????// 當進度100%時,進度條消失

??????????if?(this.progress == 100) {

????????????this.hideProgress =?true

??????????}?else?{

????????????this.hideProgress =?false

??????????}

????????})

????}.backgroundColor('0xFFFFFF')

??}

}

?

效果如下:

【鴻蒙應用ArkTS開發(fā)系列】- Web組件使用講解,Harmony,harmonyos,前端,ArkUI,ArkTS,鴻蒙開發(fā)

上面講的是使用Web組件訪問一個在線網(wǎng)頁,那怎么加載本地網(wǎng)頁文件呢?

五、訪問本地Html

先看效果圖

【鴻蒙應用ArkTS開發(fā)系列】- Web組件使用講解,Harmony,harmonyos,前端,ArkUI,ArkTS,鴻蒙開發(fā)

實現(xiàn)了一個加載本地網(wǎng)頁文件,然后Html網(wǎng)頁中調(diào)用客戶端的方法,進行了一個關(guān)閉頁面和拉起系統(tǒng)相冊的功能,下面開始講下代碼實現(xiàn)。

1、本地html文件創(chuàng)建

在entry/src/main/resources/rawfile目錄下,我們創(chuàng)建一個index.html文件

<!-- index.html -->

<!DOCTYPE html>

<html>

<body>

<p>Hello World</p>

<p>這個是來自本地的html文件</p>



<button?type="button"?onclick="window.jsBridge.closePage()">點擊調(diào)用原生關(guān)閉頁面</button>

<button?type="button"?onclick="window.jsBridge.jumpSystemPicture()">點擊拉起原生系統(tǒng)相冊</button>

</body>

</html>

2、本地html文件加載

創(chuàng)建一個LocalWebPage頁面,加載index.html 文件

import web_view from?'@ohos.web.webview';



@Entry

@Component

struct LocalWebPage {

??controller: web_view.WebviewController =?new?web_view.WebviewController()



??build() {

????Column() {

??????Web({ src: $rawfile("index.html"), controller:?this.controller })

????????.height('100%')

????}

??}

}

這里我們使用$rawfile("index.html")進行本地html文件獲取。

2、JS對象注入,Html使用JS對象調(diào)用客戶端方法

如果需要進行網(wǎng)頁跟客戶端進行交互,我們需要設置往Html中注入一個JS對象,具體如下:

import web_view from?'@ohos.web.webview';

import common from?'@ohos.app.ability.common';

import router from?'@ohos.router';



@Entry

@Component

struct LocalWebPage {

??controller: web_view.WebviewController =?new?web_view.WebviewController()



??jsBridge = {



????jumpSystemPicture() {



??????let context = getContext(this) as common.UIAbilityContext;



??????let want? = {

??????????"deviceId":?"",

??????????"bundleName":?"",

??????????"abilityName":?"",

??????????"uri":?"",

??????????"type":?"image/*",

??????????"action":?"android.intent.action.GET_CONTENT",

??????????"parameters":{},

??????????"entities":[]



??????};

??????context.startAbility(want);

????},



????closePage() {

??????router.back()

????}

??}



??build() {

????Column() {

??????Web({ src: $rawfile("index.html"), controller:?this.controller })

????????.javaScriptAccess(true)

????????.javaScriptProxy({

??????????object:?this.jsBridge,

??????????name:?"jsBridge",

??????????methodList: ["closePage","jumpSystemPicture"],

??????????controller:?this.controller

????????})

????????.height('100%')

????}

??}

}

這里我們定義了一個JS對象jsBridge ,定義了兩個方法,jumpSystemPicture 和closePage,分別用于html 拉起系統(tǒng)相冊和關(guān)閉客戶端頁面,然后使用Web的 javaScriptProxy方法進行JS對象注入設置,具體的配置如上述代碼,需要配置對象名稱,注入方法。

看下上文中Html 調(diào)用JS的代碼,比如調(diào)用客戶端的關(guān)閉頁面方法,使用

window.jsBridge.closePage() 進行觸發(fā)。

3、客戶端調(diào)用本地Html網(wǎng)頁中的JS方法

在onPageEnd事件中添加runJavaScript方法。onPageEnd事件是網(wǎng)頁加載完成時的回調(diào),runJavaScript方法可以執(zhí)行HTML中的JavaScript腳本。當頁面加載完成時,觸發(fā)onPageEnd事件,調(diào)用HTML文件中的test方法,在控制臺打印信息。

import web_view from?'@ohos.web.webview';

import router from?'@ohos.router';



@Entry

@Component

struct LocalWebPage {

??controller: web_view.WebviewController =?new?web_view.WebviewController()





??build() {

????Column() {

??????Web({ src: $rawfile("index.html"), controller:?this.controller })

????????.javaScriptAccess(true)

?? ???.onPageEnd(e =>{

??????????// test()在index.html中定義

??????????this.controller.runJavaScript('test()');

??????????console.info('url: ', e.url);

????????})

????????.height('100%')

????}

??}

}
<!-- index.html -->

<!DOCTYPE html>

<html>

<body>

<p>Hello World</p>

<p>這個是來自本地的html文件</p>



<button?type="button"?onclick="window.jsBridge.closePage()">點擊調(diào)用原生關(guān)閉頁面</button>

<button?type="button"?onclick="window.jsBridge.jumpSystemPicture()">點擊拉起原生系統(tǒng)相冊</button>

</body>

<script?type="text/javascript">

??function test() {

??????console.info('Ark Web Component');

??}

</script>

</html>

上面方法只提到了調(diào)用網(wǎng)頁中的JS方法,如果要異步獲取JS方法返回的數(shù)據(jù),應該怎么操作呢,感興趣的評論區(qū)留意討論,有時間我再補充講解下。

本文到此完結(jié),謝謝閱讀!文章來源地址http://www.zghlxwxcb.cn/news/detail-727431.html

到了這里,關(guān)于【鴻蒙應用ArkTS開發(fā)系列】- Web組件使用講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(通用屬性:組件標識)

    鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(通用屬性:組件標識)

    id為組件的唯一標識,在整個應用內(nèi)唯一。本模塊提供組件標識相關(guān)接口,可以獲取指定id組件的屬性,也提供向指定id組件發(fā)送事件的功能。 說明: 從API Version 8開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。 名稱 參數(shù)說明 描述 id string 組件

    2024年04月22日
    瀏覽(40)
  • 鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(容器組件:Flex)

    鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(容器組件:Flex)

    以彈性方式布局子組件的容器組件。 說明: 該組件從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。 Flex組件在渲染時存在二次布局過程,因此在對性能有嚴格要求的場景下建議使用Column、Row代替。 Flex組件主軸默認不設置時撐滿父容

    2024年04月11日
    瀏覽(25)
  • 鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(容器組件:List)

    鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(容器組件:List)

    列表包含一系列相同寬度的列表項。適合連續(xù)、多行呈現(xiàn)同類數(shù)據(jù),例如圖片和文本。 說明: 該組件從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。 該組件內(nèi)容區(qū)小于一屏時,默認沒有回彈效果。需要回彈效果,可以通過edgeEffe

    2024年04月13日
    瀏覽(26)
  • 鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(通用屬性:組件內(nèi)容模糊)

    鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(通用屬性:組件內(nèi)容模糊)

    為當前組件添加內(nèi)容模糊效果。 說明: 從API Version 10開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。 foregroundBlurStyle(value: BlurStyle, options?: ForegroundBlurStyleOptions) 為當前組件提供內(nèi)容模糊能力。 系統(tǒng)能力: ?SystemCapability.ArkUI.ArkUI.Full 參數(shù): 參數(shù)

    2024年03月09日
    瀏覽(24)
  • 鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(容器組件:UIExtensionComponent (系統(tǒng)接口))

    鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(容器組件:UIExtensionComponent (系統(tǒng)接口))

    UIExtensionComponent用于支持在本頁面內(nèi)嵌入其他應用提供的UI。展示的內(nèi)容在另外一個進程中運行,本應用并不參與其中的布局和渲染。 通常用于有進程隔離訴求的模塊化開發(fā)場景。 說明: 該組件從API Version 10開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的

    2024年04月13日
    瀏覽(68)
  • 【鴻蒙應用ArkTS開發(fā)系列】- 選擇圖片、文件和拍照功能實現(xiàn)

    【鴻蒙應用ArkTS開發(fā)系列】- 選擇圖片、文件和拍照功能實現(xiàn)

    在使用App的時候,我們經(jīng)常會在一些社交軟件中聊天時發(fā)一些圖片或者文件之類的多媒體文件,那在鴻蒙原生應用中,我們怎么開發(fā)這樣的功能呢? 本文會給大家對這個功能點進行講解,我們采用的是拉起系統(tǒng)組件來進行圖片、文件的選擇,拉起系統(tǒng)相機進行拍照的這樣一種

    2024年02月04日
    瀏覽(23)
  • 鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(基礎(chǔ)手勢:Web)下篇

    鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(基礎(chǔ)手勢:Web)下篇

    onRequestSelected onRequestSelected(callback: () = void) 當Web組件獲得焦點時觸發(fā)該回調(diào)。 示例: onScreenCaptureRequest10+ onScreenCaptureRequest(callback: (event?: { handler: ScreenCaptureHandler }) = void) 通知收到屏幕捕獲請求。 參數(shù): 參數(shù)名 參數(shù)類型 參數(shù)描述 handler ScreenCaptureHandler 通知Web組件用戶操作行

    2024年04月09日
    瀏覽(28)
  • 鴻蒙4.0開發(fā)筆記之ArkTS語法基礎(chǔ)的UI描述、基礎(chǔ)組件的使用與如何查看組件是否有參數(shù)(八)

    鴻蒙4.0開發(fā)筆記之ArkTS語法基礎(chǔ)的UI描述、基礎(chǔ)組件的使用與如何查看組件是否有參數(shù)(八)

    在HarmonyOS的ArkTS語法中,萬物皆組件。ArkTS以聲明方式組合和擴展組件來描述應用程序的UI,同時還提供了基本的屬性、事件和子組件配置方法,幫助開發(fā)者實現(xiàn)應用交互邏輯。根據(jù)組件構(gòu)造方法的不同,創(chuàng)建組件包含有參數(shù)和無參數(shù)兩種方式。 1、無/有參數(shù)組件 無參數(shù)組件:

    2024年02月03日
    瀏覽(19)
  • 鴻蒙ArkTS Web組件加載空白的問題原因及解決方案

    鴻蒙ArkTS Web組件加載空白的問題原因及解決方案

    初學鴻蒙開發(fā),按照官方文檔Web組件文檔《使用Web組件加載頁面》示例中的代碼照抄運行后顯示空白,糾結(jié)之余多方搜索后扔無解決方法。 無意間gitee搜索鴻蒙web組件項目代碼時看到 Web組件抽獎案例(ArkTS) Readme文檔中有一句話,如下: 本篇Codelab使用了在線網(wǎng)頁,需要在配

    2024年02月04日
    瀏覽(75)
  • 鴻蒙實戰(zhàn):ArkTs 開發(fā)一個鴻蒙應用

    鴻蒙實戰(zhàn):ArkTs 開發(fā)一個鴻蒙應用

    學習過的 ArkTs 知識點,一步一步開發(fā)一個小的鴻蒙應用示例,涉及到 ?ArkTs 語法、注解 @Entry 、 @Component 、 @state 、路由、生命周期、 @Prop 、 @Link 、常用組件的使用等等知識點。 要開發(fā)一個鴻蒙應用,首先我們需要知道 系統(tǒng)是如何找到頁面的啟動入口 。 鴻蒙如何啟動應用

    2024年02月22日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包