我正在尝试使用“共享与”功能将图像从另一个应用程序共享到Ionic 4应用程序。我的应用程序必须处理图像并使用它。 我已经尝试过this解决方案,但它是针对Ionic 3的。似乎不再需要使用该插件。 在Ionic 4中必须有解决此类常见任务的解决方案。
我尝试darryncampbell-cordova-plugin-intent失败。 我的代码是
initializeApp() {
this.platform.ready().then(() => {
(<any>window).plugins.intentShim.registerBroadcastReceiver({
filterActions: [
'com.darryncampbell.cordova.plugin.broadcastIntent.ACTION'
],
filterCategories: [
'android.intent.category.DEFAULT',
],
}, (intent) => {
//your code to be executed after the broadcast is received..
console.log('Received Intent: ' + JSON.stringify(intent.extras));
});
//more code...
此代码不执行任何操作。没事我能够编辑config.xml来配置清单,因此我的应用程序显示在菜单共享中。效果很好。
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
答案 0 :(得分:0)
我知道这是OP的重播,但我认为这对某人有帮助。
我已经使用cordova-plugin-openwith
插件来实现此目的。这将帮助您使用“共享”功能将其他应用程序的图像共享到我们的Ionic 4应用程序。
您可以在应用程序组件的构造函数中使用以下代码初始化插件。
// Initialize the plugin
window.plugins.openwith.init((initSuccess) => {
console.log('init success!' + initSuccess);
}, (initError) => {
console.log('init failed: ' + initError);
});
您可以在之后添加事件处理程序。
window.plugins.openwith.addHandler((intent) => {
console.log('intent received');
let fileType = '';
for (const item of intent.items) {
// const item = intent.items[i];
console.log(' type: ', item.type); // mime type
console.log(' uri: ', item.uri);
}
});
希望这对某人有帮助。:)快乐编码。