Hybrid App 设置 - Unity SDK (v4)

提示

在进行 Hybrid App 设置之前,请先分别在 App 和网站上完成 Unity SDKWeb SDK 的安装。

通过设置,您无需更改 Hybrid App 中网站的代码,也能让 Airbridge Unity SDK 处理应用内网站中的 Airbridge 相关操作。

使 Unity SDK 处理 Web SDK 操作

Unity SDK 可以代替 Web SDK 处理事件发送、设备设置和用户设置等命令。在 WebView 中加载网站之前,请使用 Airbridge.CreateWebInterfaceScriptAirbridge.HandleWebInterfaceCommand 函数进行设置。

webTokenWeb SDK Token,可在 Airbridge 面板的 [设置]>[Token] 获取。

postMessageScript 是一段 JavaScript 代码,用于将 Web SDK 传递给 Unity SDK 的命令所存储的 payload 变量传递至 Unity 端。

command 是 Web SDK 传递给 Unity SDK 的命令。

123456789101112131415161718192021222324252627282930313233343536373839404142
WebViewObject webViewObject;
string postMessageScript;

public void Display()
{
	string PostMessageGenerator(string arg) =>
		$@"
if (window && window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.unityControl) {{
	window.webkit.messageHandlers.unityControl.postMessage({arg});
}} else {{
	var iframe = document.createElement('IFRAME');
	iframe.setAttribute('src', 'unity:' + {arg});
	document.documentElement.appendChild(iframe);
	iframe.parentNode.removeChild(iframe);
	iframe = null;
}}";

	postMessageScript = Airbridge.CreateWebInterfaceScript("YOUR_WEB_SDK_TOKEN", PostMessageGenerator("payload"));

	webViewObject.Init(
		cb: (msg) =>
		{
			// do something
    
			// Allow the Airbridge Unity SDK to process the forwarded messages from the WebView. 
			string command = msg;
			Airbridge.HandleWebInterfaceCommand(command);
		},
		err: (msg) => { /* do something */ },
		httpErr: (msg) => { /* do something */ },
		started: (msg) => { /* do something */ },
		hooked: (msg) => { /* do something */ },
		ld: (msg) =>
		{
			// do something
         
			webViewObject.EvaluateJS(postMessageScript);
		}
	);

	webViewObject.LoadURL("https://...");
}

注意事项

Was this page helpful?

Have any questions or suggestions?