Могу ли я заставить Android использовать мое приложение в качестве приемника намерений? - PullRequest
0 голосов
/ 28 июня 2019

Так что мое приложение вряд ли полагается на WebView.Это почти как браузер для определенного сайта, но я анализирую весь HTML и т. Д. WebView содержит ссылки на разные части сайта.Я хочу, чтобы пользователь использовал мое приложение для их отображения (потому что мобильная версия сайта ужасна и очень плоха, поэтому я создал клиент, который отображает все красиво), но Google Chrome также может сделать это и предложить открыть эти ссылки в браузере.Конечно, пользователь может просто открыть ссылки в моем приложении и нажать «запомнить мой выбор», но это выглядит не так уж и здорово.Я хочу, чтобы Android открывал эти ссылки только в моем приложении, по крайней мере, когда это происходит в моем приложении.Я использую фильтр намерений, чтобы предложить свое приложение

<intent-filter android:label="@string/app_name">
    <action android:name="android.intent.action.VIEW" />

       <category android:name="android.intent.category.DEFAULT" />
       <category android:name="android.intent.category.BROWSABLE" />
       <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
          <data
              android:host="mysite.com"
              android:pathPrefix="/prefix/"
              android:scheme="https" />
       <!-- note that the leading "/" is required for pathPrefix -->
</intent-filter>

Могу ли я каким-то образом заставить Android открыть его с моим приложением?Или попросить пользователя выбрать мое приложение и попросить его «запомнить мой выбор» при открытии приложения?Потому что это не совсем обычное поведение приложения, и пользователь может быть сбит с толку тем, что он может открывать разные вещи в клиенте веб-сайта с помощью Google Chrome.

1 Ответ

0 голосов
/ 28 июня 2019

Как вы сказали
Например, он нажал на что-то в моем клиенте
Я думаю, вы можете добавить packageName в Intent с помощью action_view.такие как

Uri uri = Uri.parse("******");
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
intent.setPackage("ur app's pkgname");
startActivity(intent);
...