Открыть Intent URL из браузера - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть классический сайт asp, используемый мобильными устройствами (Android и iOS), который вызывает собственное приложение с помощью Intent, вызывая его из javascript. Иногда это работает, а в другое время не может открыть приложение. В iOS это работает все время. Вызов похож на

appNativeName://sign?fileid=yyyyyyy&rtservlet=serverUrl&key=xxxxx

Есть ли у Android такой контроль или проверка URL адресов?

Ответы [ 3 ]

0 голосов
/ 04 ноября 2019
An intent URI has the following layout (all optional - heh!)

intent:
   HOST/URI-path // Optional host 
   #Intent; 
      package=[string]; 
      action=[string]; 
      category=[string]; 
      component=[string]; 
      scheme=[string]; 
      type=[string]
      S.*=[string];
   end; 

Link : https://paul.kinlan.me/every-browser-should-support-intent-urls/

Используйте эту ссылку.

0 голосов
/ 05 ноября 2019

Ну, проблема не в том, как я называю намерение, проблема была в браузере. Он отлично работает в настольной версии со всеми браузерами, кроме старых версий Mozilla. При доступе через мобильный телефон проблема возникала только на устройствах Android, как я уже упоминал выше, и в решении использовался браузер Opera, поскольку он не ограничивал отправку данных. Мое приложение отправляет данные Base64, поэтому браузер Chrome и Samsung выдавал ошибку при отправке более 3 Мб приблизительно. Я также пытался использовать Mozilla для Android, но у него есть действительно большая проблема, которая не позволяет установить пользовательский сертификат (какой позор!), Так что, наконец, с Opera весь процесс работает нормально:)

Надеюсьэто поможет другим людям, сражающимся в этом, как я;)

0 голосов
/ 04 ноября 2019

В AndroidManufest.xml, установленном для активности, которую вы хотите открыть из браузера-фильтра намерений:

   <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="yourscheme"/>
    </intent-filter>

Затем в методе Activity onCreate () перехватите это намерение и сделайте все, что вы хотите сделать:

val intent = intent
    if (Intent.ACTION_VIEW == intent.action) {
        val uri = intent.data
        if (uri?.host?.matches("something_you_need") == true) {
            doSomething(token)
        } else {
            doSomethingElse()
        }
    }

Тогда из вашей сети вы можете позвонить примерно так: yourscheme://something_you_need

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