更新记录
1.0.8(2026-05-27)
1.优化插件内部逻辑。 2.新增鸿蒙版本功能。
1.0.7(2026-02-14)
兼容处理安卓16K的问题。
1.0.6(2025-10-15)
调整iOS扩张配置方式。
查看更多平台兼容性
uni-app(4.74)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | √ | 1.0.1 | 5.0 | 1.0.1 | 12 | 1.0.1 | 6.0.0 | 1.0.7 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.74)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 | 微信小程序 |
|---|---|---|---|---|---|---|---|---|
| × | × | 5.0 | 1.0.1 | 12 | 1.0.1 | 6.0.0 | 1.0.7 | × |
概述
XF-aleafVPNUTS实现了iOS平台集成Network Extensions集成leaf、Android集成leaf实现VPN功能,Harmony平台集成Aleaf HAR和VpnExtensionAbility实现VPN功能(小米手机上使用的请加uniPush,会在一定程度上对App进行保活)。
iOS插件必须看的说明
权限配置
"app-ios": {
"distribute": {
"modules": {},
"icons": {},
"splashScreens": {},
"privacyDescription": {
"NSSystemExtensionUsageDescription": "权限申请描述信息"
}
}
}
appIdxxx.PacketTunnel : 扩展ID格式 group.appIdxxx : 组名称格式
根目录下创建:nativeResources\ios 并放置ios-extension.json、ios-PacketTunnelExt.mobileprovision文件
ios-extension.json 内容如下:
{
"PacketTunnel.appex": {
"identifier":"com.app.xiaofei.001.PacketTunnel",
"profile":"ios-PacketTunnelExt.mobileprovision",
"entitlements":{
"com.apple.developer.networking.networkextension":["packet-tunnel-provider"],
"com.apple.security.application-groups":["group.com.app.xiaofei.001"]
}
}
}
ios-PacketTunnelExt.mobileprovision 文件为扩展appIdxxx.PacketTunnel的描述文件(请不要修改文件名称只替换描述文件)
调整插件内部的UTS.entitlements文件内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>packet-tunnel-provider</string>
</array>
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.app.xiaofei.001</string>
</array>
</dict>
</plist>
Harmony插件必须看的说明
Harmony平台需要在宿主工程中注册VPN Extension入口。插件内已提供Harmony实现代码,宿主工程需要配置 harmony-configs/entry/src/main/ets/aleafvpn/AleafVpnExtension.ets 和 harmony-configs/entry/src/main/module.json5。
Harmony前置条件
- 使用支持Harmony的HBuilderX、uni-app x和DevEco Studio环境。
- Harmony工程需支持API 6.0.0及更高版本。
- 宿主应用需要完成Harmony签名配置,并允许系统VPN授权弹窗。
- 调用
setConfig时如果传入isShowNotify: true,插件会在startVPN前请求应用通知开关;用户拒绝通知开关时,startVPN会通过fail返回错误。 - 当前通知栏保活使用普通通知能力和
isOngoing,不需要配置ohos.permission.SET_UNREMOVABLE_NOTIFICATION。该权限属于不可移除通知场景,普通应用可能无法申请。
配置 harmony-configs/entry/src/main/ets/aleafvpn/AleafVpnExtension.ets
在宿主工程中创建文件:
harmony-configs/entry/src/main/ets/aleafvpn/AleafVpnExtension.ets
文件内容保持为插件VPN Extension的继承入口:
import PluginAleafVpnExtension from '@uni_modules/xf-aleafvpnuts/utssdk/app-harmony/AleafVpnExtension';
export default class AleafVpnExtension extends PluginAleafVpnExtension {
}
配置 harmony-configs/entry/src/main/module.json5
在 module.json5 的 module.extensionAbilities 中注册VPN Extension:
{
"name": "AleafVpnExtension",
"srcEntry": "./ets/aleafvpn/AleafVpnExtension.ets",
"icon": "$media:layered_image",
"label": "$string:EntryAbility_label",
"description": "$string:EntryAbility_desc",
"type": "vpn",
"exported": false
}
同时确认 module.requestPermissions 中包含网络权限:
{
"name": "ohos.permission.INTERNET"
}
如果宿主工程已有其他 extensionAbilities 或 requestPermissions,只需要合并以上配置,不要覆盖已有配置。srcEntry 必须和实际文件路径 ./ets/aleafvpn/AleafVpnExtension.ets 一致,name 必须和插件内启动的 AleafVpnExtension 一致。
插件接口
setConfig
配置VPN参数
uni-app项目中(nvue)调用示例:
import { setConfig } from "@/uni_modules/XF-aleafVPNUTS"
setConfig({
conf: "[General]\n loglevel = trace\n logoutput = REPLACE-LEAF-LOG-FILE\n dns-server = 223.5.5.5, 114.114.114.114\n tun-fd = REPLACE-ME-WITH-THE-FD\n routing-domain-resolve = true\n [Proxy]\n Direct = direct\n Proxy = trojan, www.demo.vip, 443, password=demo, sni=www.demo.vip\n [Rule]\n FINAL, Proxy",
complete: (res) => {
console.log(res)
}
});
uni-app x项目(uvue)中调用示例:
import { setConfig } from "@/uni_modules/XF-aleafVPNUTS";
import { ConfigOptions } from "@/uni_modules/XF-aleafVPNUTS/utssdk/interface.uts";
let options = {
conf: "[General]\n loglevel = trace\n logoutput = REPLACE-LEAF-LOG-FILE\n dns-server = 223.5.5.5, 114.114.114.114\n tun-fd = REPLACE-ME-WITH-THE-FD\n routing-domain-resolve = true\n [Proxy]\n Direct = direct\n Proxy = trojan, www.demo.vip, 443, password=demo, sni=www.demo.vip\n [Rule]\n FINAL, Proxy",
isShowNotify: true,
complete: (res : any) => {
console.log(res)
}
} as ConfigOptions;
setConfig(options);
可用性
iOS、Android、Harmony系统
可提供的1.0.7及更高版本
startVPN
开启VPN服务
uni-app项目中(nvue)调用示例:
import { startVPN } from "@/uni_modules/XF-aleafVPNUTS"
startVPN({
complete: (res) => {
console.log(res)
}
});
uni-app x项目(uvue)中调用示例:
import { startVPN } from "@/uni_modules/XF-aleafVPNUTS";
import { VPNOptions } from "@/uni_modules/XF-aleafVPNUTS/utssdk/interface.uts";
let options = {
complete: (res : any) => {
console.log(res)
}
} as VPNOptions;
startVPN(options);
可用性
iOS、Android、Harmony系统
可提供的1.0.7及更高版本
stopVPN
停止VPN服务
uni-app项目中(nvue)调用示例:
import { stopVPN } from "@/uni_modules/XF-aleafVPNUTS"
stopVPN({
complete: (res) => {
console.log(res)
}
});
uni-app x项目(uvue)中调用示例:
import { stopVPN } from "@/uni_modules/XF-aleafVPNUTS";
import { VPNOptions } from "@/uni_modules/XF-aleafVPNUTS/utssdk/interface.uts";
let options = {
complete: (res : any) => {
console.log(res)
}
} as VPNOptions;
stopVPN(options);
可用性
iOS、Android、Harmony系统
可提供的1.0.7及更高版本
addStatusCallback
监听VPN状态通知
uni-app项目中(nvue)调用示例:
import { addStatusCallback } from "@/uni_modules/XF-aleafVPNUTS"
addStatusCallback({
complete: (res) => {
console.log(res)
}
});
uni-app x项目(uvue)中调用示例:
import { addStatusCallback } from "@/uni_modules/XF-aleafVPNUTS";
import { StatusOptions } from "@/uni_modules/XF-aleafVPNUTS/utssdk/interface.uts";
let options = {
complete: (res : any) => {
console.log(res)
}
} as StatusOptions;
addStatusCallback(options);
可用性
iOS、Android、Harmony系统
可提供的1.0.7及更高版本
isConnected
是否已连接
uni-app项目中(nvue)调用示例:
import { isConnected } from "@/uni_modules/XF-aleafVPNUTS"
const connected = isConnected();
console.log(connected);
uni-app x项目(uvue)中调用示例:
import { isConnected } from "@/uni_modules/XF-aleafVPNUTS";
const connected = isConnected();
console.log(connected);
可用性
iOS、Android、Harmony系统
可提供的1.0.7及更高版本
getConfig
获取正在运行的配置文件内容
uni-app项目中(nvue)调用示例:
import { getConfig } from "@/uni_modules/XF-aleafVPNUTS"
const conf = getConfig();
console.log(conf);
uni-app x项目(uvue)中调用示例:
import { getConfig } from "@/uni_modules/XF-aleafVPNUTS";
const conf = getConfig();
console.log(conf);
可用性
iOS、Android、Harmony系统
可提供的1.0.7及更高版本
getLog
获取日志信息
uni-app项目中(nvue)调用示例:
import { getLog } from "@/uni_modules/XF-aleafVPNUTS"
getLog({
complete: (res) => {
console.log(res)
}
});
uni-app x项目(uvue)中调用示例:
import { getLog } from "@/uni_modules/XF-aleafVPNUTS";
import { GetLogOptions, LeafLogResult } from "@/uni_modules/XF-aleafVPNUTS/utssdk/interface.uts";
let options = {
success: (res : LeafLogResult) => {
console.log(res.detail)
},
complete: (res : any) => {
console.log(res)
}
} as GetLogOptions;
getLog(options);
可用性
iOS、Android、Harmony系统
可提供的1.0.7及更高版本

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 277
赞赏 0
下载 12364925
赞赏 1926
赞赏
京公网安备:11010802035340号