Я создал приложение, которое открывается при нажатии на определенный URL. Очевидно, у меня есть что-то вроде этого:
<intent-filter>
<data android:scheme="http" android:host="example.com"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Так что это здорово, когда кто-то нажимает на ссылку с http://example.com/whatever/stuff..., он открывает мое приложение. Тем не менее, в моем приложении, после выполнения некоторых действий, я хочу отправить suer обратно в браузер по умолчанию (или какой браузер / веб-просмотр они использовали, когда нажимали ссылку для начала). Моя проблема в том, что я в итоге создаю цикл:
- Пользователь нажимает ссылку http://example.com/xxx, и мое приложение открывается.
- Мое приложение работает, и теперь хочет отправить пользователя на другой URL, например. http://example.com/yyy
Намерение, которое отправляет мое приложение, в итоге просто возвращается к самому себе (моему приложению).
Intent httpIntent = new Intent(Intent.ACTION_VIEW);
String theNewURL = http://example.com/yyy;
httpIntent.setData(Uri.parse(theNewURL));
startActivity(httpIntent);
Как я могу заставить мой httpIntent
использовать браузер по умолчанию (или откуда бы пользователь ни пришел с самого начала) вместо повторного вызова моего приложения?
Редактировать: я смог решить эту проблему заодно, сделав запись CNAME одного из моих собственных доменов (в качестве псевдонима), которая идет в то же место, что и http://example.com. Это отстой, потому что пользователь теперь видит другой URL, но он все еще работает в том смысле, что не вызывает намерение. (Я даже использую правильный язык, когда говорю о намерениях?)