简体   繁体   English

Unity:在 DynamicLinkReceived 回调事件中接收 Firebase 短动态链接

[英]Unity: Receive Firebase Short Dynamic Link in DynamicLinkReceived callback event

I would like to use Firebase Dynamic Links for Unity (Android/iOS) so users can invite friends and be rewarded with.我想使用Firebase Dynamic Links for Unity (Android/iOS),以便用户可以邀请朋友并获得奖励。 Each user gets a different Short Dynamic Link in the form of https://test.page.link/abcd The user can share this Short DynamicLink with friends.每个用户以https://test.page.link/abcd的形式获得不同的短动态链接,用户可以将这个短动态链接分享给朋友。


When the invited friend comes into the app, this callback is called.当被邀请的朋友进入应用程序时,将调用此回调。

private void OnDynamicLink(object sender, EventArgs args) {
        var dynamicLinkEventArgs = args as ReceivedDynamicLinkEventArgs;
        Debug.LogFormat("Received dynamic link {0}",
                        dynamicLinkEventArgs.ReceivedDynamicLink.Url.OriginalString);
    }


Unfortunately, I only get back the base link that was necessary to create the short dynamic link.不幸的是,我只取回了创建短动态链接所需的基本链接。

Received dynamic link https://www.example.com/referral?xxxxxxxxxx收到动态链接https://www.example.com/referral?xxxxxxxxxx


I get an additional native output in my iOS app:我在我的 iOS 应用程序中获得了一个额外的本机输出:

IOSNative::Native->Unity callback data: {"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 ambassador[315:8406] IOSNative::Native->Unity callback data: {"m_EventName":"applicationDidBecomeActive","m_Data":""} IOSNative::Native->Unity 回调数据:{"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=cpit1&_uitium20&_cpt=cpit1&_uitium201&_720&_7201&_7201201000 -14 15:30:20.455009+0100 大使[315:8406] IOSNative::Native->Unity 回调数据:{"m_EventName":"applicationDidBecomeActive","m_Data":""}


Now my question is how do I get the generated short dynamic link that I have shared with a friend in OnDynamicLink callback( https://test.page.link/abcd )?现在我的问题是如何获取我在 OnDynamicLink 回调( https://test.page.link/abcd )中与朋友共享的生成的短动态链接?

I need the value behind the parameter "&_osl" as seen in additional native output.我需要参数“&_osl”后面的值,如附加本机输出中所示。 But I only get the Base Url back in Unity ( https://www.example.com/referral?xxxxxxxxxx ).但我只能在 Unity 中获取 Base Url ( https://www.example.com/referral?xxxxxxxxxx )。

My solution at the end was to shorten the BaseLink with the help of DynamicLinks.GetShortLinkAsync.我最后的解决方案是在 DynamicLinks.GetShortLinkAsync 的帮助下缩短 BaseLink。

            //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();
        });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM