Откройте приложение Android из URL с помощью фильтра намерений не работает

У меня есть приложение для Android, которое люди используют в качестве замены для сайта. Следовательно, когда пользователи сталкиваются с URL-адресом веб-сайта, я хочу дать им возможность «открывать URL» в моем приложении, а не в браузере. Другими словами, я хочу, чтобы появилось всплывающее окно, которое позволяет им выбирать между моим приложением и браузером (и, возможно, другими приложениями).

Из разных источников я понимаю, что мне нужно добавить фильтр намерений к деятельности в моем приложении с фильтром «данные», который фильтрует URL-адреса правильной формы.

Сайт в вопросеhttp://members.iracing.comследовательно, я добавил следующий фильтр намерений:

    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="http" />
            <data android:host="members.iracing.com" />
        </intent-filter>
    </activity>

Я пробовал различные формы этих фильтров данных, например, использование одного узла «data» с обоими атрибутами:

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="http" android:host="members.iracing.com"/>
        </intent-filter>

Это просто не работает. Я не знаю, что еще тебе сказать. Я разместил на своем веб-сайте простую HTML-страницу с парой ссылок на различные страницы этого сайта (все начинаются с "http: //members.iracing.com / ..."), и когда я нажимаю на любую из них, они просто открываются. в браузере, даже не спрашивая меня, какое приложение я хочу использовать. Я пробовал это как на эмуляторе, так и после установки приложения на моем физическом устройстве, ничего не работает. Я попробовал это в совершенно пустом новом проекте Android, чтобы посмотреть, сработает ли это, ничего.

Затем я понял, что веб-сайт требует аутентификации, и если вы не вошли в систему, он перенаправляет на страницу входа вhttps://members.iracing.com/membersite/login.jspпоэтому я попытался заменить схему на «https». Я даже попытался сменить хост на «www.members.iracing.com», и, в конце концов, я даже попробовал комбинацию всех этих вещей (не уверен, что это должно работать, но эй, я отчаянно на этом этапе .. ...)

       <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="http" />
            <data android:scheme="https" />
            <data android:host="members.iracing.com" />
            <data android:host="www.members.iracing.com" />
        </intent-filter>

Все еще не идти. Я не уверен, что перенаправление уместно, хотя браузер сначала явно переходит на сайт без перенаправления, затем перенаправляет на страницу входа, но я ни в коем случае не получаю возможность открыть его в своем приложении. Более того, если я сначала войду в браузер вручную, перенаправление не будет, и оно все равно не будет работать.

Я что-то упускаю здесь очевидное? Я дергаю себя за волосы, почему это не работает, и я не могу отладить его, кроме того, что пробую каждую возможную комбинацию, о которой я могу подумать (я сделал ...). Спасибо за любую помощь!

Ответы на вопрос(3)

Ваш ответ на вопрос