通过网页打开Unity应用

it2026-01-14  7

通过网页打开Unity应用

大体流程写入注册表通过网页打开Unity程序接受传入参数

大体流程

应用程序(TestApp.exe)信息写入注册表。网页上打开网址 a:// 打开本地应用

写入注册表

通过bat文件生成注册表文件

set exePath="D:\\TestApp.exe" set protocolName=TestApp echo Windows Registry Editor Version 5.00 >regist.reg echo [HKEY_CLASSES_ROOT\%protocolName%] >>regist.reg echo "URL Protocol"=%exePath% >>regist.reg echo @="%protocolName% Protocol" >>regist.reg echo [HKEY_CLASSES_ROOT\%protocolName%\DefaultIcon] >>regist.reg echo @=%exePath% >>regist.reg echo [HKEY_CLASSES_ROOT\%protocolName%\shell] >>regist.reg echo [HKEY_CLASSES_ROOT\%protocolName%\shell\open] >>regist.reg echo [HKEY_CLASSES_ROOT\%protocolName%\shell\open\command] >>regist.reg echo @=%exePath% %L >>regist.reg ::regedit /s ./regist.reg ::del /q regist.reg pause>nul

运行生成的regist.reg,自动吧需要的信息写入到注册表

通过网页打开

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <a href="TestApp://test_args">打开TestApp</a> </body> </html>

Unity程序接受传入参数

通过命令还方式启动,可以传入多个参数,在Unity中可以使用下面方式获取参数列表:

var args = = Environment.GetCommandLineArgs();

通过网页启动,经测试,程序只能接收到一个参数,具体使用如下:

//参数: testapp://test_args //参数以在注册表中写入的名字+://开头 string arg = Environment.GetCommandLineArgs()[0]; //该参数是经过Url转义的,需要变成非转义形式才能使用 string usableUrg = Uri.UnescapeDataString(arg));
最新回复(0)