Я пытаюсь получить приложение Ionic, чтобы появиться в списке "Поделиться", когда пользователь нажимает кнопку "Поделиться", например, для изображения.
Насколько я понимаю, мне нужно добавить что-то вроде
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
до AndroidManifest.xml
. Что я могу сделать, используя плагин cordova-custom-config, я думаю.
Тогда мне пришлось бы как-то справиться с этим намерением, и именно поэтому мне становится сложно. Кажется, что единственный плагин cordova, который в настоящее время поддерживается для намерений, этот. Я попытался использовать его следующим образом:
initializeApp() {
this.platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
this.statusBar.styleDefault();
this.splashScreen.hide();
this.registerBroadcastReceiver();
});
}
private registerBroadcastReceiver(){
window.plugins.intentShim.registerBroadcastReceiver({
filterActions: [
'com.darryncampbell.cordova.plugin.broadcastIntent.ACTION'
]
},
function(intent) {
// Broadcast received
console.log('Received Intent: ' + JSON.stringify(intent.extras));
}
);
}
Но таким образом я получаю сообщение об ошибке, что window.plugins undefined. Я действительно не знаю, как бы интегрировать это с Ionic.
Также это работает только для Android, мне бы тоже хотелось, чтобы это работа для iOS. Этот вопрос, относящийся к этому вопросу, связан и описывает способ сделать это для iOS, но ему около 4 лет (связанные части iOS 5 лет) и веб-сайт проекта, указанный для Android в ответе уже не существует.
Было бы здорово, если бы кто-то помог мне здесь.
Связано также:
- Кордова получает общие данные из другого приложения - использует устаревший плагин,
window.plugins
, специфичный для Android. - Отправка URL-адреса для ионного приложения Android через веб-приложения из другого приложения - Использует устаревший плагин,
window.plugins
, специфический для Android.
Обновление
Все ответы сосредоточены только на Android, я действительно надеялся, что кто-то может указать мне в правильном направлении для iOS, поскольку мне это понадобится еще больше...
Окончательный вывод и награда
Bounty
После долгих размышлений я пришел к выводу, чтобы дать щедрость @Ганди. Хотя никто не мог дать полный ответ, он был единственным, кто пытался ответить на весь вопрос, включая часть iOS. Я не ожидал полного решения для кода, просто указателя в правильном направлении для Android и iOS и того, к чему он ближе всего подходит для всех ответов. Я знаю, что это очень широкий вопрос и Я хотел бы поблагодарить всех, кто нашел время, чтобы ответить и/или прокомментировать этот вопрос.
Для других, кто пытается выполнить одно и то же, вот что я заключил из всех моих исследований и ответов здесь
Android
Как уже описано выше, вы должны добавить эти строки в AndroidManifest.xml
. Затем Android запустит ваше приложение в списке общего доступа. Данные, полученные вашим приложением, вам придется обрабатывать с помощью так называемого Intent. Для этого вы можете использовать Ionic Native - Web Intent. Начиная с 9.5.2017 это еще не сработало, поскольку использование плагина Ionic Native больше не существует. Однако я создал проблему в Github, где мне сказали, что следующая версия Ionic Native (я думаю, 3.7.0), которая должна быть выпущенный в течение следующих двух недель, должен исправить это, используя plugin, упомянутый выше в моем вопросе. Это решает вопрос о том, чтобы любить играть вокруг Ionic Framework самостоятельно и просто быть в состоянии использовать Ionic Native.
IOS
В iOS это выглядит немного сложнее, и его также можно найти в Интернете. Лучше всего вы следуете ссылке, которую @Ghandi дает в своем ответе ниже.