2013-12-13 2 views
0

Я попытался запустить приложение для Android с помощью ссылки в электронном письме.запуск приложения для Android с пользовательским uri

https://hostname.com/somethingAndParameter 

Мой сервер Перенаправление ссылку:

myscheme://host 

я попробовал этот пристальный-фильтр, но он не работает:

<intent-filter> 
     <action android:name="android.intent.action.VIEW"/> 
     <category android:name="android.intent.category.DEFAULT"/> 
     <category android:name="android.intent.category.BROWSABLE"/> 
     <data android:host="host" android:scheme="myscheme"/> 
</intent-filter> 
+0

Выглядит хорошо для меня, попробуйте удалить категорию BROWSABLE, а также посмотрите, что произойдет, если вы просто укажете схему хоста OR в фильтре данных, а не то, и другое. Вы уверены, что URI выглядит так, как вы ожидаете? – Matt

+0

Я попытался удалить категорию BROWSABLE, но ничего не изменилось, мой навигатор не перехватил ссылку. И мне нужен хост и схема, потому что я могу получить другую ссылку, которая запускает различные действия. Пример myscheme: // activity1 launch activity1 и myscheme: // activity2 launch activity2. моя электронная почта https: hostname.com/somethingandparameter запускает мой навигатор, мой сервер перенаправляет, но перенаправление не работает. Извините за мой английский и спасибо за помощь: D –

+0

Правильно, я думаю, вам понадобятся оба, но я думал, что вы можете начать с того, чтобы работать над тем или иным, тогда было бы легче отладить проблемы. Может быть, перенаправление не обрабатывается должным образом? Что делать, если вы ссылаетесь непосредственно на myscheme: // host вместо перенаправления? – Matt

ответ

0

Поскольку вы не понимая путем комментариев , давайте попробуем ответить ...

Изменить <intent-filter> на:

<intent-filter> 
     <action android:name="android.intent.action.VIEW"/> 
     <category android:name="android.intent.category.DEFAULT"/> 
     <category android:name="android.intent.category.BROWSABLE"/> 
     <data 
      android:scheme="https" 
      android:host="hostname.com" 
      android:path="/somethingAndParameter"/> 
</intent-filter> 

Теперь ваш https://hostname.com/somethingAndParameter URL работает на:

  • прошивкой, потому что вы сказали, что у вас есть этот рабочий
  • Web, потому что вы сказали, что у вас есть этот рабочий
  • Android, потому что теперь, когда пользователь нажимает на эту ссылку (по электронной почте или на любом другом) на большинстве Android-устройств, пользователь получит выборщик, позволяющий пользователю выбрать ваше приложение для обработки ссылки
+0

Спасибо за ваш ответ, но это не так, потому что ссылка на gernate на сервере с host.com/internalandsomeencryptedparameter internal присутствует для всех ссылок. Мне нужно понять, почему перенаправление не перехватывает андроид. –

+0

@Hugo: «потому что ссылка связана с сервером». Затем используйте 'android: pathPrefix' или' android: pathPattern'. – CommonsWare

+0

@CommonsWareУ вас за помощь, но моя ссылка https перенаправляется на myscheme: // ссылка хоста, и когда я нажимаю ссылку на https, андроид не перехватывает мою myscheme: // host link –

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