亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入淺出學(xué)習(xí)eTs之專屬瀏覽器制作流程

Harmony&嵌入式學(xué)習(xí) ? 來源:Harmony&嵌入式學(xué)習(xí) ? 作者:Harmony&嵌入式學(xué) ? 2023-05-13 13:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、需求分析

在前一章節(jié)我們學(xué)到了如何使用HarmonyOS遠(yuǎn)端模擬器,這個章節(jié)我們就來實現(xiàn)一個聯(lián)網(wǎng)操作,從制作自己的一個專屬瀏覽器做起

默認(rèn)主頁地址

顯示當(dāng)前網(wǎng)址

具有刷新功能

可訪問真實網(wǎng)站

二、控件介紹

(1)Web

說明:

該組件從API Version 8開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨標(biāo)記該內(nèi)容的起始版本。

示例效果請以真機運行為準(zhǔn),當(dāng)前IDE預(yù)覽器不支持。

提供具有網(wǎng)頁顯示能力的Web組件。

需要權(quán)限

訪問在線網(wǎng)頁時需添加網(wǎng)絡(luò)權(quán)限:ohos.permission.INTERNET,具體申請方式請參考權(quán)限申請聲明。

基本定義

interface WebInterface {
  (value: WebOptions): WebAttribute;
}

declare interface WebOptions {
  src: string | Resource;
  controller: WebController;
}

屬性介紹

declare class WebAttribute extends CommonMethod {
  javaScriptAccess(javaScriptAccess: boolean): WebAttribute;
  fileAccess(fileAccess: boolean): WebAttribute;
  onlineImageAccess(onlineImageAccess: boolean): WebAttribute;
  domStorageAccess(domStorageAccess: boolean): WebAttribute;
  imageAccess(imageAccess: boolean): WebAttribute;
  mixedMode(mixedMode: MixedMode): WebAttribute;
  javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Array, controller: WebController }): WebAttribute;
  databaseAccess(databaseAccess: boolean): WebAttribute;
  userAgent(userAgent: string): WebAttribute;
  // 省略部分方法
}

javaScriptAccess:設(shè)置是否允許執(zhí)行 JS 腳本,默認(rèn)為 true ,表示允許執(zhí)行。

fileAccess:設(shè)置是否開啟通過 $rawfile(filepath/filename) 訪問應(yīng)用中 rawfile 路徑的文件, 默認(rèn)為 false,表示不啟用。

fileFromUrlAccess:設(shè)置是否允許通過網(wǎng)頁中的 JS 腳本訪問 $rawfile(filepath/filename) 的內(nèi)容,默認(rèn)為 false ,表示未啟用。

imageAccess:設(shè)置是否允許自動加載圖片資源,默認(rèn)為 true ,表示允許。

onlineImageAccess:設(shè)置是否允許從網(wǎng)絡(luò)加載圖片資源(通過 HTTP 和 HTTPS 訪問的資源),默認(rèn)為 true ,表示允許訪問。

domStorageAccess:設(shè)置是否開啟文檔對象模型存儲接口(DOM Storage API)權(quán)限,默認(rèn)為 false ,表示未開啟。

mixedMode:設(shè)置是否允許加載超文本傳輸協(xié)議(HTTP)和超文本傳輸安全協(xié)議(HTTPS)混合內(nèi)容,默認(rèn)為 MixedMode.None ,表示不允許加載 HTTP 和 HTTPS 混合內(nèi)容。

databaseAccess:設(shè)置是否開啟數(shù)據(jù)庫存儲 API 權(quán)限,默認(rèn)為 false ,表示不開啟。

userAgent:設(shè)置用戶代理。

javaScriptProxy:注入 JavaScript 對象到 window 對象中,并在 window 對象中調(diào)用該對象的方法。所有參數(shù)不支持更新。

Web事件介紹

declare class WebAttribute extends CommonMethod {
  onPageBegin(callback: (event?: { url: string }) => void): WebAttribute;
  onPageEnd(callback: (event?: { url: string }) => void): WebAttribute;
  onProgressChange(callback: (event?: { newProgress: number }) => void): WebAttribute;
  onTitleReceive(callback: (event?: { title: string }) => void): WebAttribute;
  onAlert(callback: (event?: { url: string, message: string, result: JsResult }) => boolean): WebAttribute;
  onConsole(callback: (event?: { message: ConsoleMessage }) => boolean): WebAttribute;
  onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResourceError }) => void): WebAttribute;
  onFileSelectorShow(callback: (event?: { callback: Function, fileSelector: object }) => void): WebAttribute;
}

onPageBegin:網(wǎng)頁開始加載時觸發(fā)該回調(diào),且只在 主frame 觸發(fā),iframe或者frameset的內(nèi)容加載時不會觸發(fā)此回調(diào)。

onPageEnd:網(wǎng)頁加載完成時觸發(fā)該回調(diào),且只在 主frame 觸發(fā)。

onProgressChange:網(wǎng)頁加載進度變化時觸發(fā)該回調(diào),newProgress 的取值范圍為[0 ~ 100]。

onTitleReceive:網(wǎng)頁 document 標(biāo)題更改時觸發(fā)該回調(diào)。

onAlert:H5 頁面內(nèi)調(diào)用 alert() 時觸發(fā)該回調(diào)。

onConsole:H5 頁面內(nèi)調(diào)用 console() 方法時的回調(diào)。

onFileSelectorShow:H5 頁面 input 標(biāo)簽的 type 為 flie 時,點擊按鈕觸發(fā)該回調(diào)。

(2)權(quán)限管理

先看下官方的權(quán)限定義:https://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/security/permission-list.md/

如果需要修改,請在Config.json中修改,其位置是"module"下新建"reqPermissions",如下:

    "reqPermissions": [
      {
        "name": "ohos.permission.MICROPHONE"
      },
      {
        "name": "ohos.permission.CAMERA"
      },
      {
        "name": "ohos.permission.MEDIA_LOCATION"
      },
      {
        "name": "ohos.permission.WRITE_MEDIA"
      },
      {
        "name": "ohos.permission.READ_MEDIA"
      },
      {
        "name": "ohos.permission.INTERNET"
      }
    ]

以上是申請了麥克風(fēng)、攝像頭、本地圖庫、媒體讀寫和網(wǎng)絡(luò)訪問(個別訪問API使用)的權(quán)限。

三、UI/程序設(shè)計

本章節(jié)在上一章的基礎(chǔ)上進行,有疑問請看第十七章,遠(yuǎn)端模擬器構(gòu)建

(1)權(quán)限添加

wKgZomRfH7yALpH3AADt3jRdLks762.png

在文件結(jié)構(gòu)中選擇config.json,添加互聯(lián)網(wǎng)權(quán)限

wKgaomRfH72AZL2BAAA_59H0Bgc544.png

(2)加載Web控件

wKgZomRfH72AC3SlAADPT7MNG_Y932.png

使用簡易代碼

@Entry
@Component
struct WebComponent {
  web_controller:WebController = new WebController();


  build() {
    Column() {
      Web({ src:'https://www.baidu.com/', controller:this.web_controller })
        .width('100%')
        .height('100%')
    }.width('100%')
    .height('80%')
  }
}

不知道怎么編譯運行的看我上個章節(jié)?。。。?/p>

(3)設(shè)計網(wǎng)頁顯示框

引入變量

@State url: string = 'https://www.baidu.com/'

Web({ src:this.url, controller:this.web_controller })

使用TextInput組件實現(xiàn)輸入

      TextInput({
        placeholder: this.url
      }).height("5%").width("90%").fontSize(15)

wKgaomRfH76AB_pOAAHylkPJQAY994.png

(4)設(shè)計操作按鍵

這里操作按鍵設(shè)置包括刷新和加載兩個按鈕

      Row()
      {
        Button("刷新")
          .onClick(() => {
            this.web_controller.refresh();
          })

        Button("加載")
          .onClick(() => {
            this.web_controller.loadUrl({
              url: this.url
            })
          })
      }

wKgZomRfH7-APy20AAIShTp7Oog776.png

四、實際演示

wKgaomRfH7-AKMB0AA366u06_Bg756.gif

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1042

    瀏覽量

    36860
  • ets
    ets
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    1872
  • OpenHarmony
    +關(guān)注

    關(guān)注

    31

    文章

    3905

    瀏覽量

    20593
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    #深入淺出學(xué)習(xí)eTs#(八)“猜大小”小游戲

    本項目Gitee倉地址:[深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)
    的頭像 發(fā)表于 05-17 15:08 ?1748次閱讀
    #<b class='flag-5'>深入淺出</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>eTs</b>#(八)“猜大小”小游戲

    #深入淺出學(xué)習(xí)eTs#(九)變紅碼?專屬二維碼生成

    本項目Gitee倉地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)
    的頭像 發(fā)表于 05-13 13:21 ?2198次閱讀
    #<b class='flag-5'>深入淺出</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>eTs</b>#(九)變紅碼?<b class='flag-5'>專屬</b>二維碼生成

    #深入淺出學(xué)習(xí)eTs#(十)藍(lán)藥丸還是紅藥丸

    本項目Gitee倉地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)
    的頭像 發(fā)表于 05-17 15:07 ?1599次閱讀
    #<b class='flag-5'>深入淺出</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>eTs</b>#(十)藍(lán)藥丸還是紅藥丸

    ARM7 深入淺出學(xué)習(xí)

    深入淺出ARM7 LPC213x_214 學(xué)習(xí)
    發(fā)表于 12-04 17:28

    深入淺出排序學(xué)習(xí)使用指南

    深入淺出排序學(xué)習(xí):寫給程序員的算法系統(tǒng)開發(fā)實踐
    發(fā)表于 09-16 11:38

    #深入淺出學(xué)習(xí)eTs#(一)模擬/真機環(huán)境搭建

    本項目的Gitee倉地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com
    發(fā)表于 12-24 13:02

    #深入淺出學(xué)習(xí)eTs#(七)判斷密碼是否正確

    本項目Gitee倉地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一
    發(fā)表于 12-29 10:06

    #深入淺出學(xué)習(xí)eTs#(九)變紅碼?專屬二維碼生成

    本項目Gitee倉地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一
    發(fā)表于 12-29 10:09

    #深入淺出學(xué)習(xí)eTs#(十八)專屬瀏覽器

    本項目Gitee倉地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一
    發(fā)表于 12-29 13:58

    深入淺出Cortex-M0學(xué)習(xí)資料

    深入淺出Cortex-M0學(xué)習(xí)資料
    發(fā)表于 06-18 10:50 ?0次下載
    <b class='flag-5'>深入淺出</b>Cortex-M0<b class='flag-5'>學(xué)習(xí)</b>資料

    STM32深入淺出新手篇

    STM32深入淺出新手篇,很好的單片機學(xué)習(xí)資料。
    發(fā)表于 03-21 17:43 ?130次下載

    深入淺出學(xué)習(xí)250個通信原理資源下載

    深入淺出學(xué)習(xí)250個通信原理資源下載
    發(fā)表于 04-12 09:16 ?30次下載

    深入淺出學(xué)習(xí)低功耗藍(lán)牙協(xié)議棧

    深入淺出學(xué)習(xí)低功耗藍(lán)牙協(xié)議棧
    發(fā)表于 06-23 10:35 ?60次下載

    深入淺出學(xué)習(xí)eTs(一)模擬/真機環(huán)境搭建

    本項目的Gitee倉地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com
    的頭像 發(fā)表于 05-13 13:17 ?2781次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>eTs</b>(一)模擬<b class='flag-5'>器</b>/真機環(huán)境搭建

    深入淺出學(xué)習(xí)eTs(七)如何判斷密碼是否正確

    本項目Gitee倉地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)
    的頭像 發(fā)表于 05-13 13:20 ?1573次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>eTs</b>(七)如何判斷密碼是否正確