Я пытаюсь открыть мое приложение из Chrome, но он не работает для меня ..Android Intents с Chrome: «Товар не найден»
Вот официальная (очень ограниченный) документация: Android Intents with Chrome
Я нашел кучу подобных вопросов, но ни одно из решений, похоже, не работает для меня - также ответы немного фрагментированы, поэтому я ищу полный ответ с примером. Я был бы рад опубликовать мое полное решение, как только мы нашли :)
- Launching an Android Application from the Browser
- Open Android app from URL using intent-filter not working
Вот что я получил в настоящее время:
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/'
Спасибо!
О мой бог, я просто понял это сам: P Почему-о-почему не иметь документ пример как «link», так и соответствующего андроидного манифеста: P Я буду обновлять свой вопрос за секунду с полным решением. Благодаря! – REJH