@miniknife
2020-03-17T11:46:28.000000Z
字数 5487
阅读 21999
已不更新,最新版请查看:http://helpdoc.touchsprite.com/dev_docs/2183/2135/2136.html
开发手册
Windows 平台按 Ctrl + F 打开快捷搜索
Mac 平台按 command + F 打开快捷搜索
※右侧文本列表可以找到全部手册
- 产品主要功能:
自动创建连接 VPN 并执行相关操作- 支持 iOS 7.0 以上系统越狱设备。
- 此插件由 Archer 开发,触动精灵提供售后服务。
- 授权码一经售出使用后不提供退换货服务。
- 如果使用过程中遇到什么问题和建议,欢迎反馈。
- 点击添加交流反馈 QQ 群:[614598232]
- 使用 VPN 配置 插件请先加载 tsl 库,请在脚本开头调用,会返回一个 table, 请看完整示例
- VPN 配置插件并非独立应用,仅供触动精灵普通版(企业版)脚本调用,不可用于其他平台。
- 触动普通版需要手动把 vpncfg.tsl 文件导入到 /var/mobile/Media/TouchSprite/plugin 插件目录
- 如果是普通版 tsp,把 tsl 文件一起打包即可,因为 tsl 插件如果存在不会覆盖,所以如果是 tsp 需要判断
- 文中提到的目录都是手机目录
普通版 tsp 可以添加该段代码,lua 不用
function file_exists(file_name) --检测指定文件是否存在
local f = io.open(file_name, "r")
return f ~= nil and f:close()
end
if file_exists(userPath().."/plugin/vpncfg.tsl") == false then
dialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin 目录下", 0)
lua_exit()
end
local tsld = loadTSLibrary("vpncfg.tsl") --库加载
if tsld.granted == 0 then
dialog("插件未授权!", 0)
return
end
if tsld.status == 0 then --验证判断
dialog("插件加载异常", 0)
return
end
require("vpncfg") --需要加载
local bkvs = VPNVersions()
if bkvs ~= "1.0" then --自己上传的文件版本号
delFile(userPath().."/plugin/vpncfg.tsl") --删除老版本
end
--以上代码请在脚本开头先调用验证加载,只需加载一次
返回值 | 类型 | 说明 |
---|---|---|
tsld.status | 整数型 | 加载库 1 - 正常,2 - 已加载过,0 - 失败 |
tsld.path | 文本型 | 插件路径 |
tsld.granted | 整数型 | 插件授权,已授权 -1,未授权 - 0 |
tsld.endtime | 整数型 | 插件授权到期时间,时间戳需要自己转换 |
函数用例:
function file_exists(file_name) --检测指定文件是否存在
local f = io.open(file_name, "r")
return f ~= nil and f:close()
end
if file_exists(userPath().."/plugin/vpncfg.tsl") == false then
dialog("库文件不存在,请手动导 入vpncfg.ts l文件到"..userPath().."/plugin目录下", 0)
lua_exit()
end
local tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 table
if tsld.granted == 0 then
dialog("插件未授权!", 0)
return
end
if tsld.status == 0 then --验证判断
dialog("插件加载异常", 0)
return
end
local info = ""
for k,v in pairs(tsld) do
info = info .. k ..":"..v.."\n"
end
dialog(info, 0)
--如果未授权点确定没反应,可执行该代码手动打开浏览器粘贴地址打开
local tsld = loadTSLibrary("vpncfg.tsl",false)
writePasteboard(tsld.url)
注意事项
- 使用该插件需要先调用该函数
- 请先判断插件已经授权并且正常加载
运行过程中只需加载一次,多次加载会导致出错
返回值 | 类型 | 说明 |
---|---|---|
bkvs | 文本型 | 插件版本号,如:1.0.0 |
函数用例:
function file_exists(file_name) --检测指定文件是否存在
local f = io.open(file_name, "r")
return f ~= nil and f:close()
end
if file_exists(userPath().."/plugin/vpncfg.tsl") == false then
dialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin目录下", 0)
lua_exit()
end
local tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 table
if tsld.granted == 0 then
dialog("插件未授权!", 0)
return
end
if tsld.status == 0 then --验证判断
dialog("插件加载异常", 0)
return
end
require("vpncfg") --需要加载
--以上代码请在脚本开头先调用验证加载,只需加载一次
local vpnvs = VPNVersions()
dialog(vpnvs, 0)
参数 | 类型 | 说明 |
---|---|---|
dispName | 文本型 | 必填,VPN 描述 |
VPNType | 整数型 | 必填,VPN 类型,0:L2TP,1:PPTP,2:IPSec,4:IKEv2 |
server | 文本型 | 必填,服务器地址 |
authorization | 文本型 | 必填,VPN 账号 |
password | 文本型 | 必填,VPN 密码 |
VPNLocalIdentifier | 文本型 | 选填,本地 ID |
VPNRemotedentifier | 文本型 | 当 VPN 类型为 4 时必填,远程 ID |
authType | 整数型 | 选填,用户鉴定,0:无 1:用户名 |
eapType | 文本型 | 选填,证书 |
securID | 文本型 | RSA SecURLID,选填 |
secret | 文本型 | 选填,秘钥 |
函数用例:
function file_exists(file_name) --检测指定文件是否存在
local f = io.open(file_name, "r")
return f ~= nil and f:close()
end
if file_exists(userPath().."/plugin/vpncfg.tsl") == false then
dialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin目录下", 0)
lua_exit()
end
local tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 table
if tsld.granted == 0 then
dialog("插件未授权!", 0)
return
end
if tsld.status == 0 then --验证判断
dialog("插件加载异常", 0)
return
end
require("vpncfg") --需要加载
--以上代码请在脚本开头先调用验证加载,只需加载一次
local tab = {
VPNType=0,
dispName="test",
server="123.123.com",
authorization="123",
password="123",
authType = 0,
}--table 内写入 VPN 配置信息
crevpn(tab)
注意事项
- 不同系统的 VPN 类型有差别
- 函数需要在设置界面调用才生效
参数 | 类型 | 说明 |
---|---|---|
dispName | 文本型 | vpn 描述 |
- 函数需要在设置界面调用才生效
函数用例:
function file_exists(file_name) --检测指定文件是否存在
local f = io.open(file_name, "r")
return f ~= nil and f:close()
end
if file_exists(userPath().."/plugin/vpncfg.tsl") == false then
dialog("库文件不存在,请手动导 入vpncfg.tsl 文件到"..userPath().."/plugin目录下", 0)
lua_exit()
end
local tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 table
if tsld.granted == 0 then
dialog("插件未授权!", 0)
return
end
if tsld.status == 0 then --验证判断
dialog("插件加载异常", 0)
return
end
require("vpncfg") --需要加载
--以上代码请在脚本开头先调用验证加载,只需加载一次
dispName = "test"
selvpn(dispName)
参数 | 类型 | 说明 |
---|---|---|
dispName | 文本型 | vpn描述 |
- 函数需要在设置界面调用才生效
函数用例:
function file_exists(file_name) --检测指定文件是否存在
local f = io.open(file_name, "r")
return f ~= nil and f:close()
end
if file_exists(userPath().."/plugin/vpncfg.tsl") == false then
dialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin目录下", 0)
lua_exit()
end
local tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 table
if tsld.granted == 0 then
dialog("插件未授权!", 0)
return
end
if tsld.status == 0 then --验证判断
dialog("插件加载异常", 0)
return
end
require("vpncfg") --需要加载
--以上代码请在脚本开头先调用验证加载,只需加载一次
dispName = "test"
delvpn(dispName)
返回值 | 类型 | 说明 |
---|---|---|
list | 文本型 | vpn名称列表 |
- 函数需要在设置界面调用才生效
函数用例:
function file_exists(file_name) --检测指定文件是否存在
local f = io.open(file_name, "r")
return f ~= nil and f:close()
end
if file_exists(userPath().."/plugin/vpncfg.tsl") == false then
dialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin 目录下", 0)
lua_exit()
end
local tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 table
if tsld.granted == 0 then
dialog("插件未授权!", 0)
return
end
if tsld.status == 0 then --验证判断
dialog("插件加载异常", 0)
return
end
require("vpncfg") --需要加载
--以上代码请在脚本开头先调用验证加载,只需加载一次
list = getVPNList()
local info = ""
for k,v in pairs(list) do
info = info .. k ..":"..v.."\n"
end
dialog(info, 0)