WebView module callback (GUAWebViewResultObserver)
Register the callback for the WebView module; the game needs to register the callback for processing.For more information about the callback data structure, please refer to GUAWebViewRet.
note
[Player Network SDK & MSDK] It is highly recommended to register it in the application startup function.
Function Definition
- Unity
- Unreal Engine
List of methods used to process callback events
| Callback Event | Common | [Player Network SDK only] | [MSD only] |
|---|---|---|---|
| WebViewRetEvents | OpenUrl, CallJS, GetEncodeUrl | Query Device Level (QueryDeviceLevel) | OpenGameDataAuthCenter, OpenAmsCenter |
event OnResultHandler<GUAWebViewRet> WebViewRetEvents;
List of methods used to process callback events
| Callback Event | Common | [Player Network SDK only] | [MSD only] |
|---|---|---|---|
| OnWebViewOptNotify | OpenUrl, CallJS, GetEncodeUrl | Query Device Level (QueryDeviceLevel) | OpenGameDataAuthCenter, OpenAmsCenter |
class GUA_EXTERN GUAWebViewObserver
{
public:
virtual ~GUAWebViewObserver() {};
virtual void OnWebViewOptNotify(const GUAWebViewRet &webview_ret) {};
};
Code Example
- Unity
- Unreal Engine
// Add callback
UnionAdapterAPI.GetWebViewService().WebViewRetEvents += OnWebViewRetEvent;
// Remove callback
UnionAdapterAPI.GetWebViewService().WebViewRetEvents -= OnWebViewRetEvent;
// WebViewRetEvents callback processing
private void OnWebViewRetEvent(GUAWebViewRet ret)
{
string methodTag = "";
if (ret.MethodId == (int)GUAMethodID.GUA_WEBVIEW_GET_ENCRYPT_URL) {
methodTag = "GetEncodeUrl";
}
else if (ret.MethodId == (int)GUAMethodID.GUA_WEBVIEW_JS_CALL)
{
methodTag = "JsCall";
UnionAdapterAPI.GetWebViewService().CallJS(WebViewSample.callJSParams);
}
else if (ret.MethodId == (int)GUAMethodID.GUA_WEBVIEW_JS_SHARE)
{
methodTag = "JsShare";
}
else if (ret.MethodId == (int)GUAMethodID.GUA_WEBVIEW_CLOSE_URL)
{
methodTag = "Close WebView";
}
else if (ret.MethodId == (int)GUAMethodID.GUA_WEBVIEW_JS_IS_APP_INSTALLED)
{
methodTag = "IsAppInstalled";
}
Debug.Log(methodTag + ret.ToString());
}
// 1. Define an observer class in the engine layer that inherits from GUA_NAMESPACE::GUAWebViewObserver
// 2. Implement callback interfaces with the same method names, such as OnWebViewOptNotify
class FGUAWebViewObserver : public GUA_NAMESPACE::GUAWebViewObserver {
public:
static FGUAWebViewObserver Instance;
void OnWebViewOptNotify(const GUA_NAMESPACE::GUAWebViewRet &webview_ret)
{
}
};
FGUAWebViewObserver FGUAWebViewObserver::Instance;
// Set callback
GUA_NAMESPACE::GUAWebViewService::SetWebViewObserver(&FGUAWebViewObserver::Instance);