在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

深入淺出學習eTs之專屬瀏覽器制作流程

Harmony&嵌入式學習 ? 來源:Harmony&嵌入式學習 ? 作者:Harmony&嵌入式學 ? 2023-05-13 13:27 ? 次閱讀

一、需求分析

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

默認主頁地址

顯示當前網(wǎng)址

具有刷新功能

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

二、控件介紹

(1)Web

說明:

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

示例效果請以真機運行為準,當前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 腳本,默認為 true ,表示允許執(zhí)行。

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

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

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

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

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

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

databaseAccess:設(shè)置是否開啟數(shù)據(jù)庫存儲 API 權(quá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 標題更改時觸發(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 標簽的 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"
      }
    ]

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

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

本章節(jié)在上一章的基礎(chǔ)上進行,有疑問請看第十七章,遠端模擬器構(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é)!!!!

(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)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1025

    瀏覽量

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

    關(guān)注

    0

    文章

    20

    瀏覽量

    1622
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3722

    瀏覽量

    16321
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

    #深入淺出學習eTs#(十)藍藥丸還是紅藥丸

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

    ARM7 深入淺出學習

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

    深入淺出排序學習使用指南

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

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

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

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

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

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

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

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

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

    深入淺出Cortex-M0學習資料

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

    STM32深入淺出新手篇

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

    深入淺出學習250個通信原理資源下載

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

    深入淺出學習低功耗藍牙協(xié)議棧

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

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

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

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

    本項目Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發(fā)表于 05-13 13:20 ?913次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b>(七)如何判斷密碼是否正確
    主站蜘蛛池模板: 夜夜操网站| аⅴ资源中文在线天堂| 五月激情六月丁香| 亚洲欧美高清| 久久亚洲视频| 天天做天天爽爽快快| 777色淫网站女女免费| 天堂中文资源网| 丁香花成人另类小说| 操香蕉| 永久黄网站色视频免费| 精品伊人久久大线蕉色首页| 日日操狠狠操| 不卡一区| 国内精品免费视频精选在线观看| 九九热在线精品| 一级特黄aa大片| 国产一级做a爱免费观看| 成人激情视频网| 婷婷5月天| 永久免费在线观看视频| 亚洲一区二区精品推荐| 欧美猛妇色xxxxxbbbb| 人人干人人爽| 亚洲人成电影在线| 91色在线观看| 亚洲国产一区二区在线| 六月丁香色婷婷| 国产女同| 色网站在线视频| 手机看片自拍自自拍日韩免费| 中文三 级 黄 色 片| 国产va免费精品观看| 91av在线免费观看| 免费人成年短视频在线观看免费网站 | 久久鲁视频| 1024你懂的国产精品| 三级在线观看免播放网站| 天天干狠狠插| 亚洲高清色| 午夜小视频男女在线观看|