DeepLink 的回调(DeepLinkBaseResultObserver)
注意
原生层接收到 DeepLink 数据后会保存在 SDK 中,需要游戏侧调用 Fetch
主动获取数据。调用 Fetch
后,DeepLink 数据会被清除。
注意
强烈建议游戏在应用启动函数中进行注册。
函数定义
// 设置 DeepLink 回调,通知引擎层是否有数据到达,收到回调后,手动调用 Fetch 功能获取数据。
public static void SetDeepLinkObserver(OnINTLResultHandler<INTLBaseResult> callback);
// 移除 DeepLink 回调
public static void RemoveDeepLinkObserver(OnINTLResultHandler<INTLBaseResult> callback);
代码示例
// 增加回调
public void SetDeepLinkObserver()
{
INTLAPI.SetDeepLinkObserver(OnDeepLinkResult);
}
// 移除回调
public void RemoveDeepLinkObserver()
{
INTLAPI.RemoveDeepLinkObserver(OnDeepLinkResult);
}
// 处理回调数据
private void OnDeepLinkResult(INTLBaseResult result)
{
m_sample.ShowLogInNewLine("OnDeepLinkResult");
// 有数据到达,调用 Fetch 获取
string deeplinkret = ToolApiCall.Instance.Fetch();
object jsonresult = Json.Deserialize(deeplinkret);
var dict = jsonresult as Dictionary<string, object>;
string url = "";
if (dict.ContainsKey("url"))
{
url = dict["url"] as string;
}
if (result.RetCode != 0)
{
m_sample.ShowLogInNewLine("failed to parse params.");
return;
}
Dictionary<string, string> parameret = new Dictionary<string, string>();
if (dict.ContainsKey("params"))
{
object par = dict["params"];
Dictionary<string, object> paramer = par as Dictionary<string, object>;
foreach (string key in paramer.Keys)
{
parameret.Add(key, paramer[key] as string);
}
}
if (url != "")
{
ShowLogInNewLine("url:");
ShowLogInNewLine(url);
ShowLogInNewLine("params:");
foreach (string key in parameret.Keys)
{
ShowLogInNewLine(key + ":" + parameret[key]);
}
}
}