2015-11-14 4 views
1

Я пытаюсь открыть мое приложение из Chrome, но он не работает для меня ..Android Intents с Chrome: «Товар не найден»

Вот официальная (очень ограниченный) документация: Android Intents with Chrome

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

Вот что я получил в настоящее время:

AndroidManifest.xml:

<activity android:name=".ActMain" > 
    <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="http" /> 
     <data android:scheme="https" /> 
     <data android:scheme="sharedr" /> 
     <data android:host="pocketr.rejh.nl" /> 
     <data android:pathPattern="/.*" /> 
    </intent-filter> 
</activity> 

Javascript (он строит ссылку намерения, когда пользователь нажимает на элемент):

var url = "http://icerrr.rejh.nl/" 
var title = "Example" 
var intenturl = "intent://sharedr/#Intent;" 
    + "package=com.rejh.sharedr;" 
    + "S.action=share;" 
    + "S.type=url;" 
    + "S.title="+ app.helpers.encodeURIComponent(title) +";" 
    + "S.url="+ app.helpers.encodeURIComponent(url) +";" 
    + "end"; 
alert(intenturl); // for debugging 
try { 
    window.location.href=intenturl; 
} catch(e) { alert(JSON.stringify(e)); } 

Я получаю 'связь' с помощью этой функции:

intent://sharedr/#Intent;package=com.rejh.sharedr;S.action=share;S.type=url;S.title=Example;S.url=http%3A%2F%2Ficerrr.rejh.nl%2F;end 

удобочитаемое:

intent://sharedr/#Intent; 
    package=com.rejh.sharedr; 
    S.action=share; 
    S.type=url; 
    S.title=Example; 
    S.url=http%3A%2F%2Ficerrr.rejh.nl%2F; 
end 

Так это работает в: он открывает Play Store и показывает «Элемент не найден» и кнопка «Обновить». Таким образом, он открывает деятельность, но не право один ..

Веб-сайт Я пытаюсь стрелять из этого является http://pocketr.rejh.nl

Помощь?

Полный ответ

Как отметил Маттиа ниже (и я просто понял это сам, но нашел ответ ждет меня ...: P)

Прежде всего: я забыл включить 'схему = sharedr' в моей умысел ссылке:

intent://sharedr/#Intent; 
    package=com.rejh.sharedr; 
    S.action=share; 
    S.type=url; 
    S.title=Example; 
    S.url=http%3A%2F%2Ficerrr.rejh.nl%2F; 
end 

Должно быть (обратите внимание на 2-й линии):

intent://sharedr/#Intent; 
    scheme=sharedr; 
    package=com.rejh.sharedr; 
    S.action=share; 
    S.type=url; 
    S.title=Example; 
    S.url=http%3A%2F%2Ficerrr.rejh.nl%2F; 
end 

Тогда, в андроиде манифеста:

<activity android:name=".ActMain" > 
    <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="sharedr" android:host="sharedr" android:path="/"/> 
    </intent-filter> 
</activity> 

Где андроид: схема = "sharedr" 'является 'схема = sharedr' часть и 'андроид: хост = "sharedr"' соответствует «намерения: // sharedr/'

Спасибо!

ответ

3

Вы указываете sharedr как host но host сконфигурированные в вашей AndroidManifest.xml является pocketr.rejh.nl. Также вы не указали scheme.

URL-адрес фиксируется это:

intent://pocketr.rejh.nl/#Intent;scheme=sharedr;package=com.rejh.sharedr;S.action=share;S.type=url;S.title=Example;S.url=http%3A%2F%2Ficerrr.rejh.nl%2F;end 

удобочитаемое:

intent://pocketr.rejh.nl/#Intent; 
    scheme=sharedr; 
    package=com.rejh.sharedr; 
    S.action=share; 
    S.type=url; 
    S.title=Example; 
    S.url=http%3A%2F%2Ficerrr.rejh.nl%2F; 
end 
+0

О мой бог, я просто понял это сам: P Почему-о-почему не иметь документ пример как «link», так и соответствующего андроидного манифеста: P Я буду обновлять свой вопрос за секунду с полным решением. Благодаря! – REJH

Смежные вопросы