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

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

系統(tǒng) OpenHarmony
這個章節(jié)我們就來實(shí)現(xiàn)一個聯(lián)網(wǎng)操作,從制作自己的一個專屬瀏覽器做起。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

一、需求分析

#盲盒+碼##深入淺出學(xué)習(xí)eTs#(十八)專屬瀏覽器-開源基礎(chǔ)軟件社區(qū)

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

  • 默認(rèn)主頁地址
  • 顯示當(dāng)前網(wǎng)址
  • 具有刷新功能
  • 可訪問真實(shí)網(wǎng)站

二、控件介紹

1、Web

說明:

  • 該組件從API Version 8開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
  • 示例效果請以真機(jī)運(yùn)行為準(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<WebAttribute> {
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<string>, 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<WebAttribute> {
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)頁加載進(jìn)度變化時觸發(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時,點(diǎn)擊按鈕觸發(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ǔ)上進(jìn)行,有疑問請看第十七章,遠(yuǎn)端模擬器構(gòu)建。

1、權(quán)限添加

#盲盒+碼##深入淺出學(xué)習(xí)eTs#(十八)專屬瀏覽器-開源基礎(chǔ)軟件社區(qū)

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

#盲盒+碼##深入淺出學(xué)習(xí)eTs#(十八)專屬瀏覽器-開源基礎(chǔ)軟件社區(qū)

2、加載Web控件

#盲盒+碼##深入淺出學(xué)習(xí)eTs#(十八)專屬瀏覽器-開源基礎(chǔ)軟件社區(qū)

使用簡易代碼:

@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%')
}
}

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

引入變量:

@State url: string = 'https://www.baidu.com/'
Web({ src:this.url, controller:this.web_controller })

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

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

#盲盒+碼##深入淺出學(xué)習(xí)eTs#(十八)專屬瀏覽器-開源基礎(chǔ)軟件社區(qū)

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

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

Row()
{
Button("刷新")
.onClick(() => {
this.web_controller.refresh();
})
Button("加載")
.onClick(() => {
this.web_controller.loadUrl({
url: this.url
})
})
}

#盲盒+碼##深入淺出學(xué)習(xí)eTs#(十八)專屬瀏覽器-開源基礎(chǔ)軟件社區(qū)

四、實(shí)際演示

#盲盒+碼##深入淺出學(xué)習(xí)eTs#(十八)專屬瀏覽器-開源基礎(chǔ)軟件社區(qū)

我的這個筆記本性能不行(現(xiàn)在正在封控中),所以有點(diǎn)卡頓,這個不影響,在這個瀏覽器是可以輸入Url和訪問的,上方是遠(yuǎn)端模擬器的效果。

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。

責(zé)任編輯:jianghua 來源: 51CTO開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2022-12-01 08:25:23

eTsTCP聊天室

2023-04-03 15:32:21

學(xué)習(xí)eTsHTTP協(xié)議

2009-11-30 16:46:29

學(xué)習(xí)Linux

2021-03-16 08:54:35

AQSAbstractQueJava

2011-07-04 10:39:57

Web

2021-10-05 20:29:55

JVM垃圾回收器

2019-01-07 15:29:07

HadoopYarn架構(gòu)調(diào)度器

2017-07-02 18:04:53

塊加密算法AES算法

2012-05-21 10:06:26

FrameworkCocoa

2021-07-20 15:20:02

FlatBuffers阿里云Java

2022-09-26 09:01:15

語言數(shù)據(jù)JavaScript

2009-06-18 12:59:39

Criteria Qu深入淺出Hiberna

2009-12-01 16:37:00

2012-02-21 13:55:45

JavaScript

2022-01-11 07:52:22

CSS 技巧代碼重構(gòu)

2018-11-09 16:24:25

物聯(lián)網(wǎng)云計算云系統(tǒng)

2019-11-11 14:51:19

Java數(shù)據(jù)結(jié)構(gòu)Properties

2022-11-09 08:06:15

GreatSQLMGR模式

2022-12-02 09:13:28

SeataAT模式

2022-10-31 09:00:24

Promise數(shù)組參數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲国产精品成人无久久精品 | 精品在线观看入口 | www日本在线观看 | h视频在线免费 | 国产片一区二区三区 | 成人在线播放网站 | 97超碰成人 | 狠狠的干| 久久久精品一区二区 | av在线免费观看不卡 | 国产精品成人av | 精品国产一区二区国模嫣然 | 亚洲顶级毛片 | 国内精品视频免费观看 | 国产丝袜av | 亚洲欧美一区二区三区情侣bbw | 中文字幕欧美在线观看 | 免费国产视频 | 国产欧美精品在线 | 国产精品一区二区三区久久久 | 久久爱黑人激情av摘花 | 久久777| 国产91丝袜在线播放 | aaa精品| 中文字幕精品一区二区三区精品 | 91精品国产综合久久香蕉922 | 成人免费视频网站在线看 | 日韩91| 久久国产视频播放 | 国产午夜精品福利 | 一区二区三区免费 | 成人免费视频 | 亚洲国产精品一区二区第一页 | 中文天堂在线观看 | 亚洲三区在线 | 精品美女视频在线观看免费软件 | 黄色三级免费 | 91在线免费观看 | 99精品视频一区二区三区 | 久久久青草| 三级在线视频 |