Android Intent-Filter для http-адреса - PullRequest
17 голосов
/ 30 мая 2011

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

Вот два типа ссылок, которые я хочу перехватить

  1. http://www.domain.com/#id=abcdef123346
  2. http://www.domain.com/social/landing/abcdef123456

Я уже решил провести отдельное действие, чтобы перехватить обе ссылки и использовать регулярное выражение Java для запускаправильная деятельность.Однако я не могу захватить только эти два формата без захвата чего-то вроде http://www.domain.com/abc123

<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="http"
                android:host="www.domain.com"
                android:pathPattern="/#id.*" />
        </intent-filter>

Это то, что я сейчас пытаюсь перехватить тип 1, и по какой-то причине это не такработает.

Этот фильтр намерений правильно перехватывает тип 2

<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="http" />
            <data android:host="domain.com" />
            <data android:host="www.domain.com" />
            <data android:pathPrefix="/share/web" />
            <data android:pathPrefix="/social/landing" />
        </intent-filter>

Спасибо,

1 Ответ

3 голосов
/ 31 мая 2011

Я думаю, что строка, которой соответствует pathPattern, это "/", а "#id ..." опущено, потому что она является частью фрагмента.Если вместо этого вы использовали http://www.domain.com/id/abcdef123456, pathPattern мог бы соответствовать «/id/.*», поскольку он является частью пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...