2017-02-13 2 views
0

Я использую заклепки с Android, чтобы открыть приложение и получить данные с веб-страницы. У меня есть следующее в моем методе onCreate.Android Заклепки Информация о приложении Всегда Нуль

 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? An = 1234, который успешно открывает мою деятельность. Однако Intent.HasExtra ("al_applink_data") всегда false, а Intent.GetStringExtra ("al_applink_data") всегда имеет значение null. Intent.Data.ToString(); показывает мое содержание с параметром. Я новичок в программировании наклеек и Android на C#. Почему это всегда может быть ложным и нулевым?

ответ

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") ----> содержит data Intent.GetStringExtra ("al_applink_data") ----> return null.

Смежные вопросы