我想使用Firebase动态链接统一(Android/iOS),这样用户就可以邀请朋友并获得奖励。每个用户都可以以的形式获得不同的短动态链接,用户可以与朋友共享这个简短的DynamicLink。
当被邀请的朋友进入应用程序时,这个回调会被调用。
private void OnDynamicLink(object sender, EventArgs args) {
var dynamicLinkEventArgs = args as ReceivedDynamicLinkEventArgs;
Debug.LogFormat("Received dynamic link {0}",
dynamicLinkEventArgs.ReceivedDynamicLink.Url.OriginalString);
}不幸的是,我只得到了创建短动态链接所必需的基本链接。
我在我的iOS应用程序中获得了额外的原生输出:
IOSNative::本机->统一回调数据:{"m_EventName":"continueUserActivity","m_Data":"https://test.page.link/?link=https://www.example.com/referral?xxxxxxxxxx&apn=de.test.testapp&isi=123456789&ibi=de.test.testapp&cid=1579347010984123886&_osl=https://test.page.link/abcd&_fpb=AB6327276CFGHT==&_cpt=cpit&_iumenbl=1&_iumchkactval=1&_plt=2076&_uit=2692&_cpb=1"} 2020-01-14 15:30:20.455009+0100大使315:8406 IOSNative::原生->统一回调数据:{"m_EventName":"applicationDidBecomeActive",“m_Data”:“}
现在我的问题是如何获得在)?回调中与朋友共享的生成的短动态链接( OnDynamicLink )
我需要参数"&_osl“后面的值,如附加的本机输出所示。但是我只得到了Unity (https://www.example.com/referral?xxxxxxxxxx)中的Base。
发布于 2020-11-17 16:31:06
最后,我的解决方案是在BaseLink的帮助下缩短DynamicLinks.GetShortLinkAsync。
//unescape url
baseLink = UnityEngine.Networking.UnityWebRequest.UnEscapeURL(baseLink);
var components = new DynamicLinkComponents(
// The base Link.
new Uri(baseLink),
// The dynamic link URI prefix.
domainUriPrefix) {
IOSParameters = new IOSParameters(PackageName) {
AppStoreId = "XXXXXXXXX"
},
AndroidParameters = new AndroidParameters(PackeName)
};
string inviteLink = string.Empty;
await DynamicLinks.GetShortLinkAsync(components, options).ContinueWith((task) => {
if (task.IsCanceled) {
Debug.LogError("GetShortLinkAsync was canceled.");
return;
}
if (task.IsFaulted) {
Debug.LogError("GetShortLinkAsync encountered an error: " + task.Exception);
return;
}
// Short Link has been created.
inviteLink = task.Result.Url.ToString();
});https://stackoverflow.com/questions/59785824
复制相似问题