2017-02-09 9 views
0

Я использую следующий код в своем манифесте, чтобы показать пользователю возможность, когда соответствующий URL-адрес будет открыт любым источником внутри мобильного телефона, но он автоматически открывает веб-браузер вместо того, чтобы показывать мое приложение в настройках. В чем может быть проблема?Ссылка на открытие Android-приложения с использованием Intent Filter не работает

<activity android:name=".VisitWebPage" > 
      <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:scheme="https" /> 
       <data android:host="www.mysite.com" /> 
       <data android:pathPattern="/.*" /> 
      </intent-filter> 
     </activity> 
+0

Просьба указать код вашей деятельности. Особенно обратный вызов '' onNewIntent''. Не уверен, можете ли вы сделать это в Управлении. Вы пробовали в ? – Grisgram

+0

В операции, обрабатывающей его в onCreate именно этим Intent intent = getIntent(); url = intent.getData(). ToString(); –

+0

Разница между onCreate и onNewIntent заключается в том, что если ваша активность уже существует (в фоновом режиме), она снова не '' создана'', вместо этого вы получаете '' onNewIntent''. В Документах: «В любом случае, когда активность перезапускается в верхней части стека действий вместо нового экземпляра запускаемой операции, onNewIntent() будет вызываться в существующем экземпляре с намерением, который был используется для повторного запуска его. '' – Grisgram

ответ

1

могли бы попытаться изменить свои метки данных, чтобы:

<data android:scheme="http" 
      android:host="www.mysite.com" /> 
    <data android:scheme="https" 
      android:host="www.mysite.com" /> 
+0

все тот же результат. –

0

Вы должны использовать, как это, Его работа для меня.

<activity 
       android:name=".MainActivity" 
       android:screenOrientation="portrait"> 
       <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="mysite.com" 
        android:pathPrefix="/m/showroom/mypage" 
        android:scheme="http" /> 
      </intent-filter> 
     </activity> 
+0

вы можете вставить образец URL-адреса, для которого он работает для вас? –

+0

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

+0

Я использую то же самое, но когда я нажимаю на URL-адрес, он открывается непосредственно в браузере. –