cordova应用程序接收从其他应用程序共享的内容 – iOS,Android和Windows应用程序商店

我正在开发一个通信器,我想将我的应用程序作为应用程序扩展插件展示给本地设备,允许用户从本地共享菜单共享图像,文本和video到我的cordova应用程序。 有没有办法在iOS,AndroidWindows Store应用程序上使用Cordova应用程序?

对于Android来说,这更容易,你可以使用一个科尔多瓦插件 。

对于iOS来说,这很难,我已经在这里记录下来

如果我理解正确,

首先 ,在Manifest.xml manifest添加android:sharedUserId="action.name"这两个应用程序。 (nativa应用程序和cordova应用程序) 重要的是sharedUserId将是相同的。

其次 ,在本机应用程序上保存此代码的对象。

 SharedPreference prefs = context.getSharedPreferences(prefName, Activity.MODE_MULTI_PROCESS); 

最后 ,您可以在cordova应用程序中获得此代码的对象。

 Context con = cordova.getActivity().getApplicationContext().createPackageContext("action.name", Context.MODE_MULTI_PROCESS); SharedPreferences pref = con.getSharedPreferences("prefName", Context.MODE_MULTI_PROCESS); 

这是一个很好而且仍然相关的问题。

对于iOS,解决方案在于为iOS应用程序创建共享扩展,幸运的是,这个过程几乎已经自动化了。

在我的研究过程中,我尝试着使用Jean-Christophe Hoelt的真棒cordova-plugin-openwith ,但遇到了几个问题。 该插件旨在接收在安装期间配置的一种类型(例如,URL,文本或图像)的共享项目。 另外,在目前的实现中,写一个笔记来分享和选择一个Cordova应用程序中的接收器是不同的(本地和Cordova)上下文中的两个不同的步骤,因此它对我来说并不是一个好的用户体验。

我做了这些和其他更正这个插件,并作为一个单独的插件发布: https : //github.com/EternallLight/cordova-plugin-openwith-ios

如果你只需要接收一个类型的股份,只说照片,cordova-plugin-openwith应该没问题。 但是,您仍然可以一次共享一个图像。

请注意,它仅适用于iOS,不适用于Android。