ArkWeb智慧防跟蹤與廣告過濾 - 保護使用者隱私

SameX發表於2024-10-18

本文旨在深入探討華為鴻蒙HarmonyOS Next系統(截止目前API12)的技術細節,基於實際開發實踐進行總結。
主要作為技術分享與交流載體,難免錯漏,歡迎各位同仁提出寶貴意見和問題,以便共同進步。
本文為原創內容,任何形式的轉載必須註明出處及原作者。

簡介

華為鴻蒙HarmonyOS Next系統的ArkWeb(方舟Web)應用框架為開發者提供了強大的Web應用開發能力。然而,Web應用可能會收集使用者的個人資訊和瀏覽行為,從而引發隱私問題。ArkWeb框架提供了智慧防跟蹤功能和廣告過濾功能,可以幫助開發者保護使用者的隱私。

智慧防跟蹤功能

ArkWeb框架的智慧防跟蹤功能可以阻止跟蹤型網站攜帶cookie進行追蹤,從而保護使用者的隱私。跟蹤型網站通常會使用第三方庫或指令碼跟蹤使用者的瀏覽行為,並將其傳送到伺服器進行分析。智慧防跟蹤功能可以阻止這些請求,從而防止使用者資訊被洩露。

工作原理

智慧防跟蹤功能透過攔截來自跟蹤型網站的請求來實現。當Web元件嘗試載入來自跟蹤型網站的資源時,ArkWeb核心會攔截該請求,並根據配置決定是否允許該請求。如果配置為禁止跟蹤型網站的請求,則該請求將被攔截,並阻止攜帶cookie進行追蹤。

如何開啟和配置

您可以透過以下步驟開啟和配置智慧防跟蹤功能:

  1. 在應用的入口檔案(例如EntryAbility.ets)中呼叫以下API開啟智慧防跟蹤功能:
import { webview } from '@ohos.web.webview';
// ...
// 開啟智慧防跟蹤功能
webview.WebviewController.enableIntelligentTrackingPrevention({
    enable: true // 開啟智慧防跟蹤功能
});
  1. 您可以設定繞過智慧防跟蹤功能的域名列表,允許這些域名的請求攜帶cookie。例如:
import { webview } from '@ohos.web.webview';
// ...
// 設定繞過智慧防跟蹤功能的域名列表
webview.WebviewController.addIntelligentTrackingPreventionBypassingList(["trusteddomain.com", "anothertrusteddomain.com"]);

廣告過濾功能

ArkWeb框架提供了廣告過濾功能,可以幫助開發者攔截網頁中的廣告,從而提升使用者體驗並保護使用者隱私。您可以使用自定義easylist規則檔案進行廣告攔截,或者使用內建的規則檔案。

使用自定義easylist規則檔案

您可以使用自定義easylist規則檔案來攔截網頁中的廣告。easylist規則檔案是一種簡單的文字檔案,它包含了要攔截的URL模式或CSS選擇器。例如:

https://example.com/ad/*
.advert*

這段規則會攔截example.com域下所有以ad開頭的URL,以及所有類名為advert的元素。
您可以將自定義easylist規則檔案儲存到應用的資源目錄下,並使用以下API將其設定到Web元件中:

import { webview } from '@ohos.web.webview';
import { picker } from '@ohos.core.file';
// ...
// 選擇自定義easylist規則檔案
const documentSelectOptions = new picker.DocumentSelectOptions();
const documentPicker = new picker.DocumentViewPicker();
documentPicker.select(documentSelectOptions).then((documentSelectResult) => {
    if (documentSelectResult && documentSelectResult.length > 0) {
        const fileRealPath = new fileUri.FileUri(documentSelectResult[0]);
        webview.AdsBlockManager.setAdsBlockRules(fileRealPath.path, true);
    }
});

使用內建的規則檔案

ArkWeb框架內建了一些廣告過濾規則檔案,您可以使用以下API將其設定到Web元件中:

import { webview } from '@ohos.web.webview';
// ...
// 使用內建的規則檔案開啟廣告過濾功能
webview.AdsBlockManager.setAdsBlockRules(null, false);

如何開啟和配置

您可以透過以下步驟開啟和配置廣告過濾功能:

  1. 在應用的入口檔案(例如EntryAbility.ets)中呼叫以下API開啟廣告過濾功能:
import { webview } from '@ohos.web.webview';
// ...
// 開啟廣告過濾功能
webview.WebviewController.enableAdsBlock({
    enable: true // 開啟廣告過濾功能
});
  1. 您可以設定允許或禁止廣告過濾的域名列表。例如:
import { webview } from '@ohos.web.webview';
// ...
// 設定允許廣告過濾的域名列表
webview.AdsBlockManager.addAdsBlockAllowedList(["example.com", "anotherexample.com"]);
import { webview } from '@ohos.web.webview';
// ...
// 設定禁止廣告過濾的域名列表
webview.AdsBlockManager.addAdsBlockDisallowedList(["adexample.com", "anotheradexample.com"]);

示例程式碼

以下示例程式碼展示瞭如何使用ArkWeb API開啟智慧防跟蹤功能和廣告過濾功能,並設定相關的配置:

import { webview } from '@ohos.web.webview';
import { picker } from '@ohos.core.file';
// ...
// 開啟智慧防跟蹤功能
webview.WebviewController.enableIntelligentTrackingPrevention({
    enable: true // 開啟智慧防跟蹤功能
});
// 開啟廣告過濾功能
webview.WebviewController.enableAdsBlock({
    enable: true // 開啟廣告過濾功能
});
// 選擇自定義easylist規則檔案
const documentSelectOptions = new picker.DocumentSelectOptions();
const documentPicker = new picker.DocumentViewPicker();
documentPicker.select(documentSelectOptions).then((documentSelectResult) => {
    if (documentSelectResult && documentSelectResult.length > 0) {
        const fileRealPath = new fileUri.FileUri(documentSelectResult[0]);
        webview.AdsBlockManager.setAdsBlockRules(fileRealPath.path, true);
    }
});
// 設定繞過智慧防跟蹤功能的域名列表
webview.WebviewController.addIntelligentTrackingPreventionBypassingList(["trusteddomain.com", "anothertrusteddomain.com"]);
// 設定允許廣告過濾的域名列表
webview.AdsBlockManager.addAdsBlockAllowedList(["example.com", "anotherexample.com"]);
// 設定禁止廣告過濾的域名列表
webview.AdsBlockManager.addAdsBlockDisallowedList(["adexample.com", "anotheradexample.com"]);

總結

ArkWeb框架的智慧防跟蹤功能和廣告過濾功能可以幫助開發者保護使用者的隱私。透過了解這些功能的工作原理,並採取適當的配置,您可以開發出更加安全可靠的Web應用,保護使用者的隱私和資料安全。

相關文章