Как запустить приложение из браузера Android, когда я набираю «myapp: //» в адресной строке - PullRequest
5 голосов
/ 19 января 2011

Мне нужен браузер, чтобы запускать мое приложение всякий раз, когда я вхожу в браузер "myapp: //blah.com/a? B = 1 & c = 2". Я много искал по этой теме, но ни один из ответов действительно не помог мне. Не могли бы вы помочь понять, что мне не хватает?

<activity android:name=".MyAppMain"
              android:label="@string/app_name"
              android:configChanges="keyboardHidden|orientation" 
              android:screenOrientation="portrait">
        <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" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="myapp" /> 
        </intent-filter>
    </activity>

После установки из Eclipse (приложение «Запуск от Android») мое приложение может нормально работать, но когда я набираю «myapp: //blah.com/a? B = 1 & c = 2», браузер просто гуглит для этой строки. Не могли бы вы указать, что еще мне не хватает? Нужно ли после установки каким-либо образом регистрироваться в системе, с которой я хочу обработать URL "myapp: //"?

Ответы [ 2 ]

0 голосов
/ 23 января 2012

Ознакомьтесь с этим ответом, чтобы узнать, почему он не работает: Пользовательская схема URI Android неправильно закодирована при вводе в браузере

В основном браузер Android по умолчанию принимает только определенные схемы URI, поэтомуваш пользовательский не будет работать при вводе прямо в строку URL.

0 голосов
/ 29 августа 2011

Я сделал это, используя

  <activity android:name=".ReceiveInviteActivity">

            <intent-filter >
                <category android:name="android.intent.category.BROWSABLE" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />

                 <data
                 android:scheme="appname" 
                 android:host="project.example.com"

                />
            </intent-filter>

        </activity>

И занятие

 if (Intent.ACTION_VIEW.equals(action)) {
            final List<String> segments = intent.getData().getPathSegments();
            Log.d("LISTARRAY",segments.toString());
            String idString = segments.get(0);
            Log.d("LISTITEM",segments.get(0).getClass().toString());
            String friendId = idString.substring((idString.indexOf("="))+1);
            Log.d("friendId!",friendId);

Надеюсь, это поможет вам.

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