@miniknife
2020-03-17T03:46:28.000000Z
字数 5487
阅读 22911
已不更新,最新版请查看: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()endif file_exists(userPath().."/plugin/vpncfg.tsl") == false thendialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin 目录下", 0)lua_exit()endlocal tsld = loadTSLibrary("vpncfg.tsl") --库加载if tsld.granted == 0 thendialog("插件未授权!", 0)returnendif tsld.status == 0 then --验证判断dialog("插件加载异常", 0)returnendrequire("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()endif file_exists(userPath().."/plugin/vpncfg.tsl") == false thendialog("库文件不存在,请手动导 入vpncfg.ts l文件到"..userPath().."/plugin目录下", 0)lua_exit()endlocal tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 tableif tsld.granted == 0 thendialog("插件未授权!", 0)returnendif tsld.status == 0 then --验证判断dialog("插件加载异常", 0)returnendlocal info = ""for k,v in pairs(tsld) doinfo = info .. k ..":"..v.."\n"enddialog(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()endif file_exists(userPath().."/plugin/vpncfg.tsl") == false thendialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin目录下", 0)lua_exit()endlocal tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 tableif tsld.granted == 0 thendialog("插件未授权!", 0)returnendif tsld.status == 0 then --验证判断dialog("插件加载异常", 0)returnendrequire("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()endif file_exists(userPath().."/plugin/vpncfg.tsl") == false thendialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin目录下", 0)lua_exit()endlocal tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 tableif tsld.granted == 0 thendialog("插件未授权!", 0)returnendif tsld.status == 0 then --验证判断dialog("插件加载异常", 0)returnendrequire("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()endif file_exists(userPath().."/plugin/vpncfg.tsl") == false thendialog("库文件不存在,请手动导 入vpncfg.tsl 文件到"..userPath().."/plugin目录下", 0)lua_exit()endlocal tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 tableif tsld.granted == 0 thendialog("插件未授权!", 0)returnendif tsld.status == 0 then --验证判断dialog("插件加载异常", 0)returnendrequire("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()endif file_exists(userPath().."/plugin/vpncfg.tsl") == false thendialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin目录下", 0)lua_exit()endlocal tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 tableif tsld.granted == 0 thendialog("插件未授权!", 0)returnendif tsld.status == 0 then --验证判断dialog("插件加载异常", 0)returnendrequire("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()endif file_exists(userPath().."/plugin/vpncfg.tsl") == false thendialog("库文件不存在,请手动导入 vpncfg.tsl 文件到"..userPath().."/plugin 目录下", 0)lua_exit()endlocal tsld = loadTSLibrary("vpncfg.tsl") --库加载,返回一个 tableif tsld.granted == 0 thendialog("插件未授权!", 0)returnendif tsld.status == 0 then --验证判断dialog("插件加载异常", 0)returnendrequire("vpncfg") --需要加载--以上代码请在脚本开头先调用验证加载,只需加载一次list = getVPNList()local info = ""for k,v in pairs(list) doinfo = info .. k ..":"..v.."\n"enddialog(info, 0)