2017-02-13 15 views
0

私はAndroidでリベットを使用して私のアプリを開き、ウェブページからデータを取得しています。 私はonCreateメソッドで次のことがあります。AndroidリベットApplinkデータ常にNull

 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プログラミングの新機能です。なぜこれはいつも偽であり、nullであるかもしれない

答えて

0

このようにしてみてください。

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.GetStringExtra( "al_applink_data")---->含まれていデータ Intent.GetStringExtra( "al_applink_data")---->はnullを返します。

関連する問題