一、SDK 集成说明
1. 将 HAR 文件复制到工程目录下。
2. 在需要引入三方包的模块的 oh-package.json5 中设置本地 HAR 包。
"dependencies": {"linkboostsdk": "file:path/to/linkboostsdk.har" // 此处也可以是以当前 oh-package.json5 所在目录为起点的相对路径。}
3. 依赖设置完成后,需要执行 ohpm install 命令安装依赖包。
4. 权限配置,在 module.json5 中添加以下权限。
// module.json5{"module": {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"},{"name": "ohos.permission.LINKTURBO"}]}}
二、示例代码
1. SOCKS5 加速示例
initMpAcc(): void {// 按设备接入MpAccClient.setDataKey("xxx", "xxx")// 按应用接入//MpAccClient.setSign("xxx", "xxx")MpAccClient.setAccType(AccType.SOCKS)this.mpAccClient = MpAccClient.getInstance(context)}startSocksAcc(): void {let accConfig = new AccConfig()accConfig.accMode = AccMode.REDUNDANTaccConfig.pingInterval = 3accConfig.socksPort = 8000 // 设置代理端口为本地可用端口this.mpAccClient.registerAccCallback(this.accCallback)this.mpAccClient.startAcc(accConfig)}stopSocksAcc(): void {this.mpAccClient.unregisterAccCallback(this.accCallback)this.mpAccClient.stopAcc()}// 加速回调private accCallback: AccCallback = {onAccSuccess: (ip: string, port: number): void => {// 收到加速成功回调,需要切流,网络库设置socks代理,ip为127.0.0.1,port和accConfig.socksPort一致},onAccFail: (errorCode: number): void => {},onAccDataUpdate: (tRx: number, tTX: number, pathDetails: ArrayList<PathDetail>): void => {},onSummaryInfoUpdate: (summaryJson: string): void => {}}
2. VPN 加速示例
新建 VPN 扩展类,继承 MpAccVpnExtAbility。
import { MpAccVpnExtAbility } from 'linkboostsdk';import Want from '@ohos.app.ability.Want';export default class EntryVpnExtAbility extends MpAccVpnExtAbility {onCreate(want: Want): void {super.onCreate(want);}onDestroy(): void {super.onDestroy();}}
在 module.json5 中注册 VPN 扩展能力,SDK 通过此扩展在独立进程中创建 VPN 隧道进行流量加速。
"extensionAbilities": [{"name": "MP_VPN","srcEntry": "./ets/vpnability/EntryVpnExtAbility.ets","type": "vpn","exported": true},]
功能调用:
initMpAcc(): void {// 按设备接入MpAccClient.setDataKey("xxx", "xxx")// 按应用接入//MpAccClient.setSign("xxx", "xxx")MpAccClient.setAccType(AccType.VPN)this.mpAccClient = MpAccClient.getInstance(context)}startSocksAcc(): void {let accConfig = new AccConfig()accConfig.accMode = AccMode.REDUNDANTaccConfig.vpnName = "MP_VPN"this.mpAccClient.registerAccCallback(this.accCallback)this.mpAccClient.startAcc(accConfig)}stopSocksAcc(): void {this.mpAccClient.unregisterAccCallback(this.accCallback)this.mpAccClient.stopAcc()}// 加速回调private accCallback: AccCallback = {onAccSuccess: (ip: string, port: number): void => {},onAccFail: (errorCode: number): void => {},onAccDataUpdate: (tRx: number, tTX: number, pathDetails: ArrayList<PathDetail>): void => {},onSummaryInfoUpdate: (summaryJson: string): void => {}}
三、常见问题
SDK 激活蜂窝能力的系统配额限制以及业务接入时涉及到的 LINKTURBO 系统权限申请。
配额限制:默认20次,配额以24小时的周期进行刷新。
LINKTURBO 权限申请: 请参见 华为 HarmonyOS 开发文档。