• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1## 解决Web组件本地资源跨域问题
2
3### 介绍
4
51. 本示例主要介绍解决Web组件本地资源跨域问题,利用Web组件的onInterceptRequest方法,对本地资源进行拦截和相应的替换。
62. 本工程主要实现了对以下指南文档中 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/web/web-cross-origin.md 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。
7
8#### LocCrossOriginResAccSol_one
9
10##### 介绍
11
121. 本示例主要介绍解决Web组件本地资源跨域问题,利用Web组件的onInterceptRequest方法,对本地资源进行拦截和相应的替换。
13
14##### 效果预览
15
16| 主页                                                         |
17| ------------------------------------------------------------ |
18| <img src="./screenshots/LocCrossOriginResAccSol_one.png" width="360;" /> |
19
20使用说明
21
221. 针对本地index.html,使用http或者https协议代替file协议或者resource协议,构造一个属于自己的域名。
23
24#### LocCrossOriginResAccSol_two
25
26##### 介绍
27
281. 本示例主要介绍解决Web组件本地资源跨域问题,通过setPathAllowingUniversalAccess设置一个路径列表。当使用file协议访问该列表中的资源时,允许进行跨域访问本地文件。
29
30##### 效果预览
31
32| 主页                                                         | 跨域访问                                                     |
33| ------------------------------------------------------------ | ------------------------------------------------------------ |
34| <img src="screenshots\LocCrossOriginResAccSol_two_1.png" width="360;" /> | <img src="screenshots\LocCrossOriginResAccSol_two_2.png" width="360;" /> |
35
36使用说明
37
381. 通过setPathAllowingUniversalAccess设置一个路径列表。当使用file协议访问该列表中的资源时,允许进行跨域访问本地文件。
391. index.html页面加载完成后,页面上显示一个按钮stealFile,点击stealFile按钮触发getFile函数跨域访问本地resfile/js/script.js文件。
40
41## 使用智能防跟踪功能
42
43### 介绍
44
451. 实现对以下指南文档中 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/web/web-intelligent-tracking-prevention.md 示例代码片段的工程化,保证指南中示例代码与sample工程文件同源。
46
47#### AddIntTrackPreventByPassList
48
49##### 介绍
50
511. 本示例主要介绍使用智能防跟踪功能,调用addIntelligentTrackingPreventionBypassingList接口设置需要绕过智能防跟踪功能的域名列表。
52
53##### 效果预览
54
55| 主页                                                         |
56| ------------------------------------------------------------ |
57| <img src="./screenshots/AddIntTrackPreventByPassList.png" width="360;" /> |
58
59使用说明
60
611. 点击addIntelligentTrackingPreventionBypassingList按钮设置需要绕过智能防跟踪功能的域名。
62
63#### ClearIntTrackPreventByPassList
64
65##### 介绍
66
671. 本示例主要介绍使用智能防跟踪功能,通过调用clearIntelligentTrackingPreventionBypassingList接口清除通过addIntelligentTrackingPreventionBypassingList接口设置的所有域名。
68
69##### 效果预览
70
71| 主页                                                         |
72| ------------------------------------------------------------ |
73| <img src="./screenshots/ClearIntTrackPreventByPassList.png" width="360;" /> |
74
75使用说明
76
771. 点击clearIntelligentTrackingPreventionBypassingList按钮清除通过addIntelligentTrackingPreventionBypassingList接口设置的所有域名。
78
79#### EnableIntTrackPrevent
80
81##### 介绍
82
831. 本示例主要介绍使用智能防跟踪功能,调用enableIntelligentTrackingPrevention接口使能或者关闭相应Web组件的智能防跟踪功能。
84
85##### 效果预览
86
87| 主页                                                         |
88| ------------------------------------------------------------ |
89| <img src="./screenshots/EnableIntTrackPrevent.png" width="360;" /> |
90
91使用说明
92
931. 点击enableIntelligentTrackingPrevention按钮使能相应Web组件的智能防跟踪功能。
94
95#### IsIntTrackPreventEnabled
96
97##### 介绍
98
991. 本示例主要介绍使用智能防跟踪功能,通过调用isIntelligentTrackingPreventionEnabled接口判断当前Web组件是否开启了智能防跟踪功能。
100
101##### 效果预览
102
103| 主页                                                         |
104| ------------------------------------------------------------ |
105| <img src="./screenshots/IsIntTrackPreventEnabled.png" width="360;" /> |
106
107使用说明
108
1091. 点击isIntelligentTrackingPreventionEnabled按钮判断当前Web组件是否开启了智能防跟踪功能。
110
111#### OnIntTrackPreventResult
112
113##### 介绍
114
1151. 本示例主要介绍使用智能防跟踪功能,通过调用onIntelligentTrackingPreventionResult接口,以回调的方式异步获取拦截的跟踪型网站的域名和访问的网站域名信息。
116
117##### 效果预览
118
119| 主页                                                         |
120| ------------------------------------------------------------ |
121| <img src="./screenshots/OnIntTrackPreventResult.png" width="360;" /> |
122
123使用说明
124
1251. 点击onIntelligentTrackingPreventionResult按钮,获取拦截的跟踪型网站的域名和访问的网站域名信息。
126
127#### RemoveIntTrackPreventByPassList
128
129##### 介绍
130
1311. 本示例主要介绍使用智能防跟踪功能,通过调用removeIntelligentTrackingPreventionBypassingList接口移除通过addIntelligentTrackingPreventionBypassingList接口设置的部分域名列表。
132
133##### 效果预览
134
135| 主页                                                         |
136| ------------------------------------------------------------ |
137| <img src="./screenshots/RemoveIntTrackPreventByPassList.png" width="360;" /> |
138
139使用说明
140
1411. 点击removeIntelligentTrackingPreventionBypassingList按钮,移除通过addIntelligentTrackingPreventionBypassingList接口设置的部分域名列表。
142
143## 使用Web组件的广告过滤功能
144
145### 介绍
146
1471. 实现对以下指南文档中 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/web/web-adsblock.md 示例代码片段的工程化,保证指南中示例代码与sample工程文件同源。
148
149#### EnablingAdsBlocking
150
151##### 介绍
152
1531. 本示例主要介绍使用Web组件的广告过滤功能,应用可以通过AdsBlockManager提供的setAdsBlockRules()接口设置自定义的easylist过滤规则,并通过Web组件的enableAdsBlock()接口使能广告过滤特性。
154
155##### 效果预览
156
157| 主页                                                         | 文件选择器                                                   |
158| ------------------------------------------------------------ | ------------------------------------------------------------ |
159| <img src="./screenshots/EnablingAdsBlocking_1.png" width="360;" />/> | <img src="./screenshots/EnablingAdsBlocking_2.png" width="360;" /> |
160
161使用说明
162
1631. 点击setAdsBlockRules按钮,通过文件选择器设置自定义的easylist过滤规则。
164
165#### DisAdsBlockSpecDomPages_one
166
167##### 介绍
168
1691. 本示例主要介绍使用Web组件的广告过滤功能,在Web组件的广告过滤开关开启后,应用有时候会期望关闭一些特定页面的广告过滤功能,AdsBlockManager提供了addAdsBlockDisallowedList()接口完成此功能。
170
171##### 效果预览
172
173| 主页                                                         |
174| ------------------------------------------------------------ |
175| <img src="./screenshots/DisAdsBlockSpecDomPages_one.png" width="360;" /> |
176
177使用说明
178
1791. 点击addAdsBlockDisallowedList按钮关闭特定域名页面的广告过滤。
180
181#### DisAdsBlockSpecDomPages_two
182
183##### 介绍
184
1851. 本示例主要介绍使用Web组件的广告过滤功能,使用addAdsBlockDisallowedList()接口添加域名。
186
187##### 效果预览
188
189| 主页                                                         |
190| ------------------------------------------------------------ |
191| <img src="./screenshots/DisAdsBlockSpecDomPages_two.png" width="360;" /> |
192
193使用说明
194
1951. 点击addAdsBlockDisallowedList按钮添加域名。
196
197#### CollectingAdsBlockingInformation
198
199##### 介绍
200
2011. 本示例主要介绍使用Web组件的广告过滤功能,在Web组件的广告过滤开关开启后,访问的网页如果发生了广告过滤,会通过Web组件的onAdsBlocked()回调接口通知到应用,应用可根据需要进行过滤信息的收集和统计。
202
203##### 效果预览
204
205| 主页                                                         |
206| ------------------------------------------------------------ |
207| <img src="./screenshots/CollectingAdsBlockingInformation.png" width="360;" /> |
208
209使用说明
210
2111. 使用onAdsBlocked接口收集广告过滤的信息。
212
213### 工程目录
214
215```
216entry/src/main/
217|---ets
218|---|---entryability
219|---|---|---EntryAbility.ets
220|---|---pages
221|---|---|---CollectingAdsBlockingInformation
222|---|---|---DisAdsBlockSpecDomPages_one
223|---|---|---DisAdsBlockSpecDomPages_two
224|---|---|---LocCrossOriginResAccSol_one
225|---|---|---LocCrossOriginResAccSol_two
226|---|---|---AddIntTrackPreventByPassList
227|---|---|---ClearIntTrackPreventByPassList
228|---|---|---EnableIntTrackPrevent
229|---|---|---IsIntTrackPreventEnabled
230|---|---|---OnIntTrackPreventResult
231|---|---|---RemoveIntTrackPreventByPassList
232|---|---|---EnablingAdsBlocking
233|---|---|---Index.ets						// 首页
234|---resources								// 静态资源
235|---ohosTest
236|---|---ets
237|---|---|---tests
238|---|---|---|---Ability.test.ets            // 自动化测试用例
239```
240
241
242### 相关权限
243
244[ohos.permission.INTERNET](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissioninternet)
245
246## 依赖
247
248不涉及。
249
250## 约束与限制
251
2521. 本示例仅支持标准系统上运行,支持设备:RK3568。
2532. 本示例支持API14版本SDK,SDK版本号(API Version 14 Release)。
2543. 本示例需要使用DevEco Studio 版本号(5.0.1Release)才可编译运行。
255
256## 下载
257
258如需单独下载本工程,执行如下命令:
259
260```
261git init
262git config core.sparsecheckout true
263echo code/DocsSample/ArkWeb/ManageWebCompSecPriv > .git/info/sparse-checkout
264git remote add origin https://gitee.com/openharmony/applications_app_samples.git
265git pull origin master
266```
267