go注册Windows注册表使用url scheme 实现网页跳转打开go程序

1.新建.reg 文件

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\testRegister]

@="test测试"

"URL Protocol"="testRegister"

[HKEY_CURRENT_USER\SOFTWARE\Classes\testRegister\shell]

[HKEY_CURRENT_USER\SOFTWARE\Classes\testRegister\shell\open]

[HKEY_CURRENT_USER\SOFTWARE\Classes\testRegister\shell\open\command]

@="\"C:\\testRegister\\testRegister.exe\" \"%1\""

2.创建.exe文件执行.reg

combinedOutput, err := exec.Command("regedit.exe", "/S", "reg.reg").CombinedOutput()

func main() {

//combinedOutput, err := exec.Command("regedit.exe", "/S", "reg.reg").CombinedOutput() combinedOutput, err = exec.Command("cmd.exe","/C",fmt.Sprintf("regedit.exe /S %s",regFilePath)).CombinedOutput() //log.Println("重新注册:", string(combinedOutput), err) //fmt.Println("ss") //time.Sleep(36 * time.Second) args := os.Args

args[1] = strings.ReplaceAll(args[1], "testregister://", "testregister:")

args[1] = strings.ReplaceAll(args[1], "/?", "?")

splitFirst := strings.ReplaceAll(args[1], "testregister:", "")

//提取URL中的指令 instructNew := strings.TrimSpace(str.GetFirstElemBySep(splitFirst, "?"))

//Instruct = instructNew parse, err := url.ParseQuery(str.GetLastElemBySep(args[1], "?"))

if err == nil {

fmt.Println(parse)

// ParamsFromScheme = parse // for k := range ParamsFromScheme { // value := ParamsFromScheme.Get(k) // ParamsFromScheme.Set(k, strings.TrimSpace(value)) // } // } }

fmt.Println(instructNew)

fmt.Println(args)

tt()

}

uni-app是一个使用Vue.js开发所有前端应用的框架,它允许开发者编写一套代码,然后发布到iOS、Android、Web(包括微信小程序)等多个平台。在uni-app中实现URL Scheme跳转是一个功能,它允许应用根据特定的URL Scheme打开另一个应用或者页面。 URL Scheme是一种类似于URL的协议,通常用于指定一种资源的访问方式。在移动设备上,URL Scheme可以用来打开应用程序。每个应用都可以有自己的URL Scheme,当系统遇到该Scheme时,会尝试打开对应的应用。 在uni-app中实现URL Scheme跳转的基本步骤如下: 1. 注册URL Scheme:在应用的配置文件中(比如Android的`AndroidManifest.xml`和iOS的`info.plist`文件中),你需要注册一个自定义的URL Scheme,这样系统就知道当遇到这个Scheme时应该启动你的应用。 2. 使用`plus.runtime.openURL`方法:在uni-app中,你可以使用`plus.runtime.openURL`方法来实现URL Scheme跳转。这个方法允许你打开指定的URL Scheme,如果这个Scheme对应的是另一个应用,系统会尝试打开那个应用;如果是网页URL,则会打开网页。 示例代码: ```javascript plus.runtime.openURL({ url: 'yourapp://path?query=xxx', success: function() { console.log('open url success'); }, fail: function(error) { console.log('open url failed', error); } }); ``` 3. 处理返回结果:如果打开的是另一个应用,并且这个应用支持返回数据,你可以通过监听`onHide`事件来获取其他应用通过URL Scheme传递过来的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值