Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova应用程序接收来自其他应用程序(iOS、Android和Windows应用商店应用程序)的共享内容_Android_Ios_Windows_Cordova_Share - Fatal编程技术网

Cordova应用程序接收来自其他应用程序(iOS、Android和Windows应用商店应用程序)的共享内容

Cordova应用程序接收来自其他应用程序(iOS、Android和Windows应用商店应用程序)的共享内容,android,ios,windows,cordova,share,Android,Ios,Windows,Cordova,Share,我正在开发一个通信器,我想将我的应用程序作为应用程序扩展公开给本机设备,允许用户将图像、文本、视频从本机共享菜单共享到我的Cordova应用程序。对于iOS、Android和Windows应用商店上的Cordova应用程序,有没有办法做到这一点?如果我理解正确 首先,在manifest.xml的tag中添加两个应用程序的android:sharedUserId=“action.name”。(nativa应用程序和cordova应用程序)重要的是sharedUserId将是相同的。 第二步,在本机

我正在开发一个通信器,我想将我的应用程序作为应用程序扩展公开给本机设备,允许用户将图像、文本、视频从本机共享菜单共享到我的Cordova应用程序。对于iOS、Android和Windows应用商店上的Cordova应用程序,有没有办法做到这一点?

如果我理解正确

首先,在
manifest.xml
tag中添加两个应用程序的
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);

对于Android,这更容易,您可以使用一个


对于iOS来说,这很难,我已经记录了这是一个很好的问题,而且仍然相关

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

在我的研究过程中,我试图利用Jean-Christophe Hoelt的可怕的cordova插件openwith,但遇到了几个问题。该插件旨在接收一种类型的共享项(比如URL、文本或图像),这是在安装过程中配置的。另外,就其当前的实现而言,在Cordova应用程序中编写便笺共享和选择接收者在不同的(本地和Cordova)环境中是两个不同的步骤,因此我认为这不是一个好的用户体验

我对该插件进行了以下和其他更正,并将其作为单独的插件发布:

如果您只需要接收一种类型的共享,比如只接收照片,那么cordova插件openwith就可以了。但是,您仍然可以一次共享一个图像

请注意,它只适用于iOS,不适用于Android