android– 让Ionic应用程序出现在“共享”列表中并接收数据

android– 让Ionic应用程序出现在“共享”列表中并接收数据,第1张

概述当用户单击图像的共享按钮时,我试图让“离子”应用程序出现在“共享”列表中.据我所知,我必须添加类似的东西<intent-filter><actionandroid:name="android.intent.action.SEND"/><categoryandroid:name="android.intent.category.DEFAULT"/><dataandroid:mi

当用户单击图像的共享按钮时,我试图让“离子”应用程序出现在“共享”列表中.

据我所知,我必须添加类似的东西

<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 plugin做.
然后,我必须以某种方式处理这个意图,这对我来说是棘手的.似乎目前为意图维护的唯一cordova插件是this one.我尝试使用它像这样:

  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是未定义的.我真的不知道如何将它与Ionic结合起来.

此外,这仅适用于AndroID,我也想为iOS工作.
This SO question是相关的,并提到了一种方法来为iOS做这个,但它大约4年(链接的iOS部分5年)和在答案中为AndroID指定的项目webintent甚至不再存在.

如果有人可以帮助我在这里会很棒.

还有关系:

> Cordova receive shared data from other app – 使用过时的插件,window.plugins,AndroID特定.
> Sending url to ionic android app via webintents from another app – 使用过时的插件,window.plugins,AndroID特定.

更新

所有答案都只关注AndroID,我真的希望有人能指出我正确的iOS方向,因为我需要更多……

最终结论&赏金

赏金
经过长时间的考虑,我已经结束了给予@Ghandi赏金.虽然没有人能给出完整的答案,但他是唯一一个试图回答整个问题的人 – 包括iOS部分.我没想到一个完整的代码解决方案,只是AndroID和iOS正确方向的指针,这就是他最接近所有答案的东西.我知道这是一个非常广泛的问题,我要感谢所有花时间回答和/或评论这个问题的人.

对于那些试图完成同样事情的人来说,这就是我对所有研究和答案的总结

AndroID的

正如我在上面的问题中已经描述的那样,您必须将这些行添加到AndroIDManifest.xml中. AndroID将使您的应用程序显示在共享列表中.您的应用程序收到的数据必须通过所谓的Intent来处理.为此,您可以使用Ionic Native – Web Intent.截至9.5.2017,由于Plugin Ionic Native使用的不再存在,因此无法使用.然而,我已经创建了一个issue on Github,我被告知Ionic Native的下一个版本(我认为3.7.0)应该在接下来的两周内发布,应该通过使用我上面提到的问题中提到的plugin来解决这个问题.这解决了必须亲自玩Ionic Framework并简单地使用Ionic Native的问题.

iOS版

在iOS中,它看起来有点棘手,而且在网络上也找不到它.你最好按照@Ghandi在下面的答案中提供的链接.

解决方法:

经过一些详细的分析,这是我可以得出的结论:

在AndroID中,您可以使用cordova-plugin-intent将您的应用程序添加到共享列表中,如here所述.您还可以通过在活动中添加intent过滤器来实现此目的,如here所述

在iOS中,这有点棘手,因为没有直接的插件或现成的解决方案来实现这一点.但是我可以得到的与iOS共享菜单中添加应用程序相关的最佳链接是getting listed in share menu该链接包含苹果文档以执行此 *** 作以及Info.pList中的一些调整以实现此目的.

这是我能想到的最好的答案.希望能帮助到你.干杯.

总结

以上是内存溢出为你收集整理的android – 让Ionic应用程序出现在“共享”列表中并接收数据全部内容,希望文章能够帮你解决android – 让Ionic应用程序出现在“共享”列表中并接收数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1100601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存