精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

HarmonyOS - JavaUI 框架之使用WebView加載本地H5頁面

系統 OpenHarmony
WebView 是一個基于 webkit 引擎、展現 web 頁面的控件,可以顯示和渲染web頁面,相當于應用中的瀏覽器,可以加載網絡上或應用本地的HTML文件。

??想了解更多內容,請訪問:??

??51CTO OpenHarmony技術社區??

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

前言

現在應用開發中都不可避免的需要加載一些H5頁面。HarmonyOS應用通過 WebView 來提供應用中集成H5頁面的能力。在HarmonyOS應用中,出于安全考慮,WebView不支持直接通過File協議加載資源文件或本地文件,所以不能直接通過文件的存放路徑,加載本地H5頁面,下面介紹一下在HarmonyOS應用中,如何實現加載本地H5頁面。

WebView使用介紹

WebView 是一個基于 webkit 引擎、展現 web 頁面的控件,可以顯示和渲染web頁面,相當于應用中的瀏覽器,可以加載網絡上或應用本地的HTML文件。

WebView的能力:

  • 顯示和渲染 Web 頁面。
  • 直接使用 HTML文件(網絡上或本地 resources 中)作布局。
  • 可和 JavaScript 交互調用。

效果展示:

實現步驟:

1. 首先在resources目錄下創建rawfile文件夾,該目錄下的資源會打包進應用內。

2.將H5頁面放到entry/src/main/resources/rawfile文件夾下。

3.WebView 要訪問本地 Web 文件,需要通過DataAbility 的方式進行訪問,這里創建一個 WebAbility.java 文件。

在WebAbility中進行本地資源文件的解析,重寫 RawFileDescriptor(),獲取到我們解析到的RawFileDescriptor對象,RawFileDescriptor可以看作是我們訪問HarmonyOS應用本地資源文件的入口,通過該入口可以將我們的H5頁面加載到WebView控件上。

注意:private static final String ENTRY_PATH_PREFIX = “entry/resources” 這里將 “entry” 替換成自己對應modul的路徑。

public class WebAbility extends Ability {
private static final String PLACEHOLDER_RAW_FILE = "/rawfile/";
private static final String PLACEHOLDER_LOCAL_FILE = "/local/";
private static final String ENTRY_PATH_PREFIX = "entry/resources";
@Override
public RawFileDescriptor openRawFile(Uri uri, String mode) throws FileNotFoundException {
final int splitChar = '/';
if (uri == null) {
throw new FileNotFoundException("Invalid Uri");
}
// 獲取uri對應的資源路徑 例如:com.example.dataability/entry/resources/rawfile/
String path = uri.getEncodedPath();
final int splitIndex = path.indexOf(splitChar, 1);
if (splitIndex < 0) {
throw new FileNotFoundException("Invalid Uri " + uri);
}
// 處理不同路徑下的資源文件
String targetPath = path.substring(splitIndex);
if (targetPath.startsWith(PLACEHOLDER_RAW_FILE)) {
// 打開entry/resources/rawfile目錄下的資源
try {
return getResourceManager().getRawFileEntry(ENTRY_PATH_PREFIX + targetPath).openRawFileDescriptor();
} catch (IOException e) {
throw new FileNotFoundException("Not found support raw file at " + uri);
}
} else if (targetPath.startsWith(PLACEHOLDER_LOCAL_FILE)) {
// 打開手機本地存儲目錄下的資源
File file = new File(getContext().getFilesDir(), targetPath.replace(PLACEHOLDER_LOCAL_FILE, ""));
if (!file.exists()) {
throw new FileNotFoundException("Not found support local file at " + uri);
}
return getRawFileDescriptor(file, uri);
} else {
throw new FileNotFoundException("Not found support file at " + uri);
}
}
//獲取手機本地存儲目錄下文件資源的訪問入口
private RawFileDescriptor getRawFileDescriptor(File file, Uri uri) throws FileNotFoundException {
try {
final FileDescriptor fileDescriptor = new FileInputStream(file).getFD();
return new RawFileDescriptor() {
@Override
public FileDescriptor getFileDescriptor() {
return fileDescriptor;
}
@Override
public long getFileSize() {
return -1;
}
@Override
public long getStartPosition() {
return 0;
}
@Override
public void close() throws IOException {
}
};
} catch (IOException e) {
throw new FileNotFoundException("Not found support local file at " + uri);
}
}

4.然后在 “entry/src/main/config.json” 中完成 WebAbility 的聲明,代碼如下:

 {
"name": "com.example.webdemo.WebAbility",
"type": "data",
"uri": "dataability://com.example.webdemo.dataability"
},

找到config.json的對應的module,在abilities節點中添加以上代碼,具體位置如下:

"abilities": [
{
"name": "com.example.webdemo.WebAbility",
"type": "data",
"uri": "dataability://com.example.webdemo.dataability"
},
{
"visible": true,
"name": "com.example.webdemo.MainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
"formsEnabled": true,
"label": "$string:entry_MainAbility",
"type": "page",
}
],
......

在abilities中聲明的 uri 的值便是webview加載的路徑,在WebAbility里面進行了資源文件的解析,當路徑指向WebAbility時,H5頁面就可以在WebAbility上顯示了。

5.創建 WebView 并加載本地頁面。

在MainAbility的onStart()中創建WebView,并配置支持訪問Data Ability資源,支持JavaScript,通過webView.load()加載本地H5頁面,加載地址為:“dataability://com.example.webdemo.dataability/rawfile/help-center/index.html#/”,“dataability://com.example.webdemo.dataability”是指向解析本地資源文件的Ability,后面拼接加載頁面的路徑,具體代碼如下:

  DirectionalLayout dLayout = new DirectionalLayout(this);
dLayout.setLayoutConfig(new ComponentContainer.LayoutConfig(
ComponentContainer.LayoutConfig.MATCH_PARENT,
ComponentContainer.LayoutConfig.MATCH_PARENT
));
super.setUIContent(dLayout);
WebView webView = new WebView(this);
webView.getWebConfig().setJavaScriptPermit(true);
webView.getWebConfig().setDataAbilityPermit(true);
webView.load("dataability://com.example.webdemo.dataability/rawfile/help-center/index.html#/");
dLayout.addComponent(webView);

總結

實際項目中APP中的H5頁面一般都是通過網絡獲取的,并不需要本地解析資源文件。但是手機斷網或者網絡不穩定時,可以下載H5頁面到本地,通過以上方式使用webview加載本地H5頁面,避免出現手機斷網或者網絡不穩定時頁面加載不了的情況。

??想了解更多內容,請訪問:??

??51CTO OpenHarmony技術社區??

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

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2017-05-10 07:33:41

AndroidWebView視頻

2020-12-13 12:14:45

H5開發H5-Dooring

2024-04-10 08:24:29

2015-07-15 14:38:54

H5移動適配

2015-07-15 12:30:37

移動端H5高清多屏

2023-08-15 08:34:28

頁面制作工具GitHub

2021-06-08 05:53:31

H5 頁面項目劉海屏適配

2023-05-29 18:33:30

得物H5容器

2017-07-28 08:07:05

2016-08-15 16:55:13

APP開發APP優化移動APP

2022-06-27 09:48:15

H5移動互聯網頁面性能

2020-06-04 16:57:07

移動開發互聯網實踐

2017-07-20 14:13:38

前端瀏覽器Native App

2024-04-11 10:02:06

iOS鍵盤Android

2025-03-28 08:55:00

H5頁面APPiOS

2016-03-10 11:21:57

H5前端框架

2023-08-14 23:45:55

2017-08-16 10:57:25

H5HTML開發

2018-02-06 16:21:13

H5首屏探討

2015-12-16 12:40:32

H5緩存機制移動
點贊
收藏

51CTO技術棧公眾號

成人av电影在线播放| 欧美特黄视频| 69成人精品免费视频| 中文字幕乱码免费| 天堂网2014av| 老司机精品视频在线| 欧美极品少妇xxxxⅹ喷水 | 无码人妻熟妇av又粗又大| 欧美残忍xxxx极端| 亚洲精品按摩视频| 久久精品亚洲天堂| 午夜精品久久久久久久久久蜜桃| 国产精品免费免费| 精品国产一区二区三区麻豆小说 | 亚洲成人在线网| av网站在线不卡| av中文字幕在线观看第一页| 国产精品美女久久久久av爽李琼| 国产美女精品在线观看| 亚洲无码精品国产| 亚洲一区二区成人| 欧美人与物videos| 欧美福利在线视频| 亚洲素人在线| 亚洲国产精彩中文乱码av在线播放| 色噜噜狠狠一区二区| 三级中文字幕在线观看| 亚洲综合图片区| 中文字幕一区二区三区在线乱码| 你懂的视频在线播放| 成人免费va视频| 91亚洲午夜在线| 一区二区三区麻豆| 国产日韩欧美一区二区三区在线观看| 免费av一区二区| 四虎地址8848| 日韩在线第七页| 一区二区三区精品99久久| 欧美xxxxx少妇| 久久综合给合| 91精品国产免费| 女同激情久久av久久| 欧美影视资讯| 欧美性受xxxx黑人xyx性爽| 精品一卡二卡三卡| 一区二区精品伦理... | 日本女优爱爱视频| 午夜裸体女人视频网站在线观看| 亚洲妇女屁股眼交7| 国产成人亚洲综合无码| 伊人在我在线看导航| 亚洲欧美日韩中文播放| 欧美日韩一级在线| 国产丝袜在线| 亚洲精品成人悠悠色影视| 黄色网zhan| av免费在线免费| 一区二区三区影院| 男女日批视频在线观看| av资源新版天堂在线| 五月综合激情日本mⅴ| 欧美二区在线视频| 丝袜老师在线| 91黄色免费看| 色啦啦av综合| 精品一区二区三区中文字幕在线 | 午夜国产精品视频| 久久久久久久久网站| 日本视频www| 美女诱惑一区| 91精品国产综合久久香蕉| 国产精品国产一区二区三区四区| 国产一区不卡精品| 成人免费视频观看视频| 头脑特工队2在线播放| 久久先锋影音av鲁色资源网| 日本中文不卡| 激情在线小视频| 午夜精品福利在线| 国产一级不卡毛片| 国产精品**亚洲精品| 精品国产在天天线2019| 亚洲国产无码精品| 91久久夜色精品国产按摩| 久久999免费视频| 精品国产xxx| 国产一区欧美一区| 国产一区二区三区四区五区在线 | 精品素人av| 一本色道久久88综合亚洲精品ⅰ | av大片在线播放| 一区二区三区精品在线| 黄色免费福利视频| 日韩三区四区| 亚洲美女av黄| 欧美 日韩 国产 一区二区三区| 亚洲精选91| 国产一区二区香蕉| 天堂а√在线8种子蜜桃视频| 欧美精彩视频一区二区三区| 乱熟女高潮一区二区在线| 欧美大电影免费观看| 91精品国产综合久久久久久| 国产黄色三级网站| 亚洲啊v在线观看| 欧美野外猛男的大粗鳮| 99在线精品视频免费观看20| 91免费国产视频网站| 亚洲区成人777777精品| 992tv国产精品成人影院| 精品国产免费人成电影在线观看四季| 欧美激情视频二区| 亚洲中午字幕| 成人情视频高清免费观看电影| 国产免费a∨片在线观看不卡| 亚洲综合免费观看高清完整版 | 九九精品视频在线| 中文字幕免费播放| 99久久99久久久精品齐齐| 黄色免费高清视频| 韩国成人在线| 亚洲精品小视频| 国产第一页在线播放| 国产一区二区精品久久91| 亚洲欧美日韩国产成人综合一二三区 | 日韩精品视频一区二区三区| 中国china体内裑精亚洲片| 91浏览器在线观看| 成人三级在线视频| 丰满女人性猛交| 日本一区二区三区中文字幕| 亚洲欧洲视频在线| 中文在线第一页| 91在线精品一区二区| 91精品国产91久久久久麻豆 主演| 亚洲爽爆av| 中文字幕国内精品| 中文字幕在线网站| 国产欧美一区二区精品性色| 国产日韩一区二区在线观看| 欧美影院天天5g天天爽| 午夜精品久久久久久久99热浪潮 | 视频欧美精品| 日韩中文第一页| 一区二区三区午夜| 成人欧美一区二区三区1314| 天天干天天操天天做| 三级电影一区| 国产专区精品视频| 麻豆传媒在线免费| 在线综合亚洲欧美在线视频| 久久久久久视频| 国产精品影视网| 黄色一级片国产| 99re8这里有精品热视频8在线| 久久成人综合视频| www.色日本| 精品国产31久久久久久| 国产偷人妻精品一区| 久久夜色精品| 亚洲国产一区二区在线| 91成人福利社区| 色综合导航网站| 五月婷婷六月激情| 狠狠色噜噜狠狠狠狠97| 三上悠亚影音先锋| 久久精品国内一区二区三区| 中文字幕免费高| 成人在线超碰| 国产suv精品一区二区| 91精品专区| 欧美第一区第二区| 美女又爽又黄免费视频| 欧美激情综合五月色丁香| 九九热免费在线观看| 亚洲欧美伊人| 欧美日韩一区二区视频在线 | 好看的中文字幕在线播放 | av在线中文| 日韩亚洲欧美成人一区| 制服.丝袜.亚洲.中文.综合懂色| 中文字幕欧美国产| 性生活在线视频| 国产精品久久久久久久久久妞妞 | 91三级在线| 精品在线观看国产| 7777久久亚洲中文字幕| 亚洲无线码一区二区三区| 国产真实乱人偷精品人妻| 国产一区在线观看麻豆| 日韩欧美国产免费| 91欧美国产| 免费日韩电影在线观看| 亚洲成人精品综合在线| 4438全国亚洲精品在线观看视频| 四虎久久免费| 日韩国产精品一区| 国产精品毛片一区视频播| 黑人巨大精品欧美一区二区一视频| 日本黄色激情视频| 91麻豆精品在线观看| 久久精品国产露脸对白| 性高湖久久久久久久久| 欧美日韩午夜爽爽| 成人羞羞动漫| 久久精品国产一区二区三区日韩| 国产精品视频一区二区三区综合| 奇米四色中文综合久久| 欧美1234区| 日韩在线观看免费全| 你懂的在线观看视频网站| 欧美成人精品高清在线播放| 亚洲天堂男人网| 日韩欧美在线看| 久久精品视频久久| 亚洲欧美日韩国产中文在线| 我不卡一区二区| 91麻豆精品在线观看| 国产精品入口麻豆| 国产成人福利片| 国产九九九视频| 久久精品二区亚洲w码| 天堂在线资源视频| 久久国产88| 人人妻人人添人人爽欧美一区| 888久久久| 老司机av福利| 婷婷另类小说| 一本色道久久综合亚洲精品婷婷 | 中文成人综合网| 受虐m奴xxx在线观看| 99久久精品免费精品国产| 18深夜在线观看免费视频| 激情六月婷婷综合| 亚洲综合av在线播放| 久久精品国产精品亚洲红杏| 8x8x最新地址| 蜜臀av一级做a爰片久久| 国产日韩一区二区在线观看| 久热精品在线| 国产免费人做人爱午夜视频| 香蕉成人久久| 午夜精品久久久内射近拍高清| 国产欧美一级| 美女福利视频在线| 日韩精品五月天| 能在线观看的av网站| 日日夜夜一区二区| 国产wwwxx| 激情图片小说一区| 久久精品亚洲天堂| 懂色av一区二区三区蜜臀| 中文字幕天堂av| 91色porny蝌蚪| 成人性生交大片免费看无遮挡aⅴ| 日本一区二区久久| 999久久久国产| 亚洲精品美腿丝袜| 国产午夜免费视频| 精品国产91久久久久久| 波多野结衣大片| 91精品一区二区三区在线观看| 国产乱叫456在线| 欧美va亚洲va| 日韩黄色影片| www.亚洲成人| 欧美14一18处毛片| 青青久久aⅴ北条麻妃| 校园春色亚洲色图| 91精品视频播放| 红杏aⅴ成人免费视频| 女同一区二区| 国产精品福利在线观看播放| 亚洲av综合色区| 亚洲日韩成人| 手机视频在线观看| 国产盗摄一区二区三区| 色呦呦一区二区| 国产精品久久久久久久久免费樱桃| 免费三级在线观看| 午夜精品福利一区二区蜜股av| 久久久999久久久| 欧美大片拔萝卜| 国产免费av高清在线| 欧美日韩高清在线观看| 成人教育av| 91在线观看免费网站| 伊人久久大香线蕉无限次| 中国成人在线视频| 99热在线精品观看| 8x8x成人免费视频| 久久综合色鬼综合色| 国产一二三四区| 欧美性猛交xxxx免费看久久久| 国产一区二区在线不卡| 亚洲精品资源美女情侣酒店| 麻豆av在线导航| 欧洲亚洲妇女av| 一区二区三区欧洲区| 亚洲午夜精品久久久中文影院av | 精品日韩美女的视频高清| 在线免费观看中文字幕| 亚洲激情在线观看| 国产原创视频在线观看| 清纯唯美亚洲综合| 中文字幕一区图| 亚洲一区二区三区四区中文| 国产亚洲一级| 成人做爰69片免费| 国产亚洲精品免费| 成人免费视频毛片| 欧美成人一区二区三区在线观看| 国产1区2区3区在线| 性欧美在线看片a免费观看| 国内精品视频| 性欧美videosex高清少妇| 国产精品久久久亚洲一区| 超碰91在线播放| 国产精品乱人伦一区二区| 国产suv精品一区二区33| 亚洲精品在线观| 日韩电影免费观看| 91精品视频免费看| 国产精品久久久久久久| 国产一二三区av| 欧美激情在线观看视频免费| 日本熟女毛茸茸| 亚洲精品电影网在线观看| 午夜dj在线观看高清视频完整版 | av在线资源观看| 日韩中文在线视频| 涩涩涩久久久成人精品| 亚洲一区三区| 麻豆精品久久久| jizz日本在线播放| 欧美丝袜自拍制服另类| 黄色影院在线播放| 国产精品99久久久久久人| 免费av一区| 免费裸体美女网站| 国产日韩欧美高清| 国产精品sm调教免费专区| 中文字幕亚洲欧美日韩高清| 88xx成人网| 一区二区三区在线观看www| 麻豆精品视频在线观看视频| 国产探花在线视频| 日韩一区二区三区四区五区六区| h片在线播放| 国产精品一国产精品最新章节| 亚洲夜间福利| 一区二区三区免费在线观看视频| 欧美日韩亚洲精品一区二区三区| 五月婷婷在线播放| 国产精品99久久久久久久久| 日产精品一区二区| 久久久九九九热| 亚洲午夜在线观看视频在线| 黄色片网站免费在线观看| 2019最新中文字幕| 精品免费一区二区| 视频免费1区二区三区| 亚洲欧美日韩国产中文在线| 亚洲精品第五页| 日本不卡高字幕在线2019| 成人女性视频| 日本一二三四区视频| 亚洲成在人线免费| 蜜桃视频在线观看视频| 成人福利网站在线观看| 欧美一区二区三区另类 | 欧美孕妇与黑人孕交| 精品国产一区二区三区四区| 成人黄色一级大片| 亚洲成a人v欧美综合天堂下载| 青青草在线免费观看| 国产日韩精品在线观看| 激情视频一区二区三区| 日本一级免费视频| 欧美一级在线视频| 亚洲妇女成熟| 特级黄色录像片| 99精品桃花视频在线观看| 亚洲精品国产精品国自产网站按摩| 草民午夜欧美限制a级福利片| 欧美a一欧美| 亚洲一区二区在线视频观看| 五月激情综合网| 欧美r级在线| 免费av在线一区二区| 国产在线精品一区二区三区不卡| av大片免费观看| 欧美成年人网站| 欧洲杯半决赛直播| 国产+高潮+白浆+无码| 欧美三级在线视频| 嗯啊主人调教在线播放视频| 一区二区在线中文字幕电影视频| 91一区二区在线| www.色播.com|