Branch.io initSession возвращает пустой BranchUniversalObject JSON и BranchLinkProperties JSON - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь добавить функцию обмена в свое существующее приложение с помощью Unity Branch SDK.

Я создал короткий URL-адрес, используя следующий код.

BranchUniversalObject universalObject = new BranchUniversalObject();
BranchLinkProperties linkProperties = new BranchLinkProperties();
string deviceUniqueIdentifier = SystemInfo.deviceUniqueIdentifier;

universalObject.canonicalIdentifier = $"xLeague/{deviceUniqueIdentifier}";
universalObject.canonicalUrl = "http://xleague.games/";
universalObject.title = MetaDataManager.Title;
universalObject.contentDescription = MetaDataManager.Description;
universalObject.imageUrl = MetaDataManager.Image;

linkProperties.controlParams.Add("$desktop_url", "http://xleague.games/xleague-solitaire-share/");
linkProperties.controlParams.Add("$android_url", "http://xleague.games/android");
linkProperties.controlParams.Add("$ios_url", "https://apps.apple.com/us/app/xleague-solitaire/id1480117114");
linkProperties.controlParams.Add("$ipad_url", "https://apps.apple.com/us/app/xleague-solitaire/id1480117114");
linkProperties.controlParams.Add("$match_duration", "2000");
linkProperties.controlParams.Add("$og_title", MetaDataManager.Title);
linkProperties.controlParams.Add("$og_description", MetaDataManager.Description);
linkProperties.controlParams.Add("$og_image_url", MetaDataManager.Image);
linkProperties.controlParams.Add("$deviceID", deviceUniqueIdentifier);

Branch.getShortURL(universalObject, linkProperties, (param, error) =>
{
    if (error != null)
    {
        Debug.LogError("Branch.getShortURL failed: " + error);
    }
    else if (param != null)
    {
        callback(param);
    }
});

Я могу получить следующие короткие URL из Unity Branch.

https://xleague.app.link/r7DxT2wkZ5

https://xleague.app.link/4WPwY7jm05

https://xleague.app.link/LFfAOZuo05

https://xleague.app.link/hVR3fr0n05

И я извлекаю свойства BranchUniversalObject и BranchLinkProperties, используя следующий код.

void Start()
{
    Branch.initSession(CallbackWithBranchUniversalObject);
}

void CallbackWithBranchUniversalObject(BranchUniversalObject buo, BranchLinkProperties linkProps, string error)
{
    if (error != null)
        Debug.Log($"Error : {error}");
    else
    {
        Debug.Log(buo.ToJsonString());
        Debug.Log(linkProps.ToJsonString());
        if (linkProps.controlParams.ContainsKey("$deviceID"))
        {
            string senderDeviceID = linkProps.controlParams["$deviceID"];
            ...
        }
    }
}

Если я нажму общую ссылку iPhone или Android, он перенаправит меня в Appstore или Google Play Store. Я могу установить приложение в App Store и Google Play Store. Но когда я открыл приложение, initSession возвращает пустой BranchUniversalObject JSON и BranchLinkProperties JSON.

BranchUniversalObject JSON

{
  "$canonical_identifier": "",
  "$canonical_url": "",
  "$og_title": "",
  "$og_description": "",
  "$og_image_url": "",
  "$publicly_indexable": "0",
  "$locally_indexable": "0",
  "$exp_date": "69425078400000",
  "$keywords": [],
  "metadata": "{}"
}

BranchLinkProperties JSON

{
  "~tags": [],
  "~feature": "",
  "~alias": "",
  "~channel": "",
  "~stage": "",
  "~duration": "0",
  "control_params": {}
}

Что меня больше смущает, так это то, что initSession иногда возвращает правильный BranchUniversalObject JSON и BranchLinkProperties JSON, как и ожидалось. Я полагаю, что созданный мной URL-адрес филиала работает только для первого клика. Я был бы очень признателен вам, если бы вы могли мне помочь.

1 Ответ

0 голосов
/ 05 мая 2020

A Branchster Here -

Пожалуйста, проверьте вашу интеграцию, как указано здесь . Для дальнейшего устранения неисправностей вы также можете следовать указаниям здесь . Если это происходит, когда вы нажимаете на ссылку из фона, убедитесь, что вы следуете правилам внутрисайтового связывания и убедитесь, что onNewIntent реализовано как рекомендуется .

Обратите внимание, что при нажатии на ссылку должна открываться только операция, в которой есть метод initSession (). Также, пожалуйста, не разглашайте свои ключи ветви публично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...