WebView 模块的回调(GUAWebViewResultObserver)
注册 WebView 模块的回调,游戏需要注册回调进行处理。更多关于回调数据结构,可以查看 GUAWebViewRet。
注意
[Player Network SDK & MSDK] 强烈建议游戏在应用启动函数中进行注册。
函数定义
- Unity
 - Unreal Engine
 
回调事 件用于处理的方法列表
| 回调事件 | Common | [仅限 Player Network SDK] | [仅限 MSD] | 
|---|---|---|---|
| WebViewRetEvents | OpenUrl,  CallJS, GetEncodeUrl  | 查询机型分档(QueryDeviceLevel) | OpenGameDataAuthCenter,  OpenAmsCenter  | 
event OnResultHandler<GUAWebViewRet> WebViewRetEvents;
回调事件用于处理的方法列表
| 回调事件 | Common | [仅限 Player Network SDK] | [仅限 MSD] | 
|---|---|---|---|
| OnWebViewOptNotify | OpenUrl,  CallJS, GetEncodeUrl  | 查询机型分档(QueryDeviceLevel) | OpenGameDataAuthCenter,  OpenAmsCenter  | 
class GUA_EXTERN GUAWebViewObserver
{
public:
    virtual ~GUAWebViewObserver() {};
    virtual void OnWebViewOptNotify(const GUAWebViewRet &webview_ret) {};
};
代码示例
- Unity
 - Unreal Engine
 
// 增加回调
UnionAdapterAPI.GetWebViewService().WebViewRetEvents += OnWebViewRetEvent;
// 移除回调
UnionAdapterAPI.GetWebViewService().WebViewRetEvents -= OnWebViewRetEvent;
// WebViewRetEvents 的回调处理
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.在引擎层定义继承自 GUA_NAMESPACE::GUAWebViewObserver 的观察者类
// 2.实现方法名一样的回调接口如:OnWebViewOptNotify
class FGUAWebViewObserver : public GUA_NAMESPACE::GUAWebViewObserver {
public:
    static FGUAWebViewObserver Instance;
    void OnWebViewOptNotify(const GUA_NAMESPACE::GUAWebViewRet &webview_ret)
    {
    }
};
FGUAWebViewObserver FGUAWebViewObserver::Instance;
// 设置回调
GUA_NAMESPACE::GUAWebViewService::SetWebViewObserver(&FGUAWebViewObserver::Instance);