簡體   English   中英

Android Rivets Applink數據始終為空

[英]Android Rivets Applink Data Always Null

我在Android上使用Rivets打開我的應用程序並從網頁獲取數據。 我的onCreate方法中包含以下內容。

        if (Intent.HasExtra("al_applink_data"))
        {
            var data = Intent.Data.ToString();
            var appLinkData = Intent.GetStringExtra("al_applink_data");

            var alUrl = new Rivets.AppLinkUrl(data, appLinkData);

            // InputQueryParameters will contain our token
            if (alUrl != null && alUrl.InputQueryParameters.ContainsKey("an"))
            {
                _token = alUrl.InputQueryParameters["an"];
            }
            else
            {
               // No token found
            }
        }

我的活動在頂部有此過濾器。

[IntentFilter(new[] { Intent.ActionView }, 
    DataScheme = "test", 
    DataHost = "test", 
    Categories = new[]
    {
        Intent.CategoryDefault, Intent.CategoryBrowsable
    })]

我的測試內容是test:// test?an = 1234,它成功打開了我的活動。 但是,Intent.HasExtra(“ al_applink_data”)始終為false,而Intent.GetStringExtra(“ al_applink_data”)始終為null。 Intent.Data.ToString(); 用參數顯示我的內容。 我是C#的鉚釘和Android編程的新手。 為什么這總是false和null?

嘗試這樣:

protected override void OnCreate(Bundle bundle)
{
  base.OnCreate(bundle);
  SetContentView(....);
  if (Intent != null) 
  {
   OnNewIntent(Intent);
  }
}

protected override void OnNewIntent(Android.Content.Intent intent)
{
  base.OnNewIntent(intent);
  var appLinkData  = intent.GetStringExtra("al_applink_data");
  AppLinkUrl alUrl = null;
  if (appLinkData != null)
  {
    alUrl = new Rivets.AppLinkUrl(intent.Data.ToString(), appLinkData);
  }
  if (alUrl != null) {
   // LAUNCH URI
  }
}

記住要使用OnNewIntent方法中傳遞的(小寫)“ intent”參數:

intent.GetStringExtra(“ al_applink_data”)---->包含數據Intent.GetStringExtra(“ al_applink_data”)---->返回null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM