我正在开发一个沟通者,我想将我的应用程序作为应用程序扩展暴露给本机设备,允许用户将本地Share菜单中的图像,文本,视频共享到我的Cordova应用程序。有没有办法在iOS,Android和Windows Store App上为Cordova应用程序执行此操作?
答案 0 :(得分:3)
对于Android,这更容易,您可以使用cordova plugin。
对于iOS来说很难,我已经记录了this here
答案 1 :(得分:1)
如果我理解正确,
首先,在android:sharedUserId="action.name"
这两个应用的manifest
标记中添加Manifest.xml
。 (nativa应用程序和cordova应用程序)重要的是sharedUserId将是相同的。
第二次,在本机应用上保存此代码的对象。
SharedPreference prefs = context.getSharedPreferences(prefName, Activity.MODE_MULTI_PROCESS);
上次,您可以在cordova app上获取此代码的对象。
Context con = cordova.getActivity().getApplicationContext().createPackageContext("action.name", Context.MODE_MULTI_PROCESS);
SharedPreferences pref = con.getSharedPreferences("prefName", Context.MODE_MULTI_PROCESS);
答案 2 :(得分:0)
这是一个很好且仍然相关的问题。
对于iOS,解决方案在于为您的iOS应用程序创建共享扩展,幸运的是,此过程已经几乎自动化。
在我的研究过程中,我尝试使用Jean-Christophe Hoelt的精彩 cordova-plugin-openwith ,但遇到了几个问题。该插件用于接收在安装期间配置的一种类型的共享项(例如,URL,文本或图像)。此外,通过其当前实现,在Cordova应用程序中编写共享和选择接收器的注释是不同(本机和Cordova)上下文中的两个不同步骤,因此它对我来说并不是一个良好的用户体验。 / p>
我对此插件进行了这些和其他更正,并将其作为单独的插件发布: https://github.com/EternallLight/cordova-plugin-openwith-ios
如果你只需要收到一种类型的股票,比如说只有照片,那么cordova-plugin-openwith就可以了。但是,您仍然可以一次共享一个图像。
请注意,它仅适用于iOS,不适用于Android。