Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.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
将android活动转换为phonegap插件的方法_Android_Cordova_Plugins_Android Activity - Fatal编程技术网

将android活动转换为phonegap插件的方法

将android活动转换为phonegap插件的方法,android,cordova,plugins,android-activity,Android,Cordova,Plugins,Android Activity,我已经创建了一个JAVA android活动,该活动已经完成,可以编译为APK并安装在android手机上 我已经实现了一个phonegap android应用程序,也可以在android手机上编译和安装 现在我希望phonegap android应用程序能够调用JAVA活动,并正确地从中接收一个简单的字符串 问题是我希望他们都能构建为1个apk。这意味着在安装phonegap应用程序之前,手机上不存在JAVA android活动 可能吗?如果是,通常的做法是什么?我应该创建phonegap插件

我已经创建了一个JAVA android活动,该活动已经完成,可以编译为APK并安装在android手机上

我已经实现了一个phonegap android应用程序,也可以在android手机上编译和安装

现在我希望phonegap android应用程序能够调用JAVA活动,并正确地从中接收一个简单的字符串

问题是我希望他们都能构建为1个apk。这意味着在安装phonegap应用程序之前,手机上不存在JAVA android活动

可能吗?如果是,通常的做法是什么?我应该创建phonegap插件和JAVA android活动吗


还有可能在phonegap apk中包含整个JAVA android活动吗?如果是,是否有文章对此进行了描述

我通过搜索网站找到了答案

这是因为我不仅是phonegap的新手,也是android的新手

但在理解了phonegap的结构之后,它就变得非常简单了

解决方案:

通过运行phonegap教程:phonegap创建

创建phonegap解决方案,并运行phonegap添加android

phonegap将自动为android创建/平台

在文件夹/平台下应该有一个android文件夹

实际上,这个文件夹可以提取到eclipse并运行,而无需任何额外的工作(如果它被修改或添加了一些数据包。您可以确保数据包工作正常,我的经验是eclipse有时会在android平台的/src中将phonegap的数据包作为文件夹读取)

如果有人熟悉android,因为android平台有一个可行的解决方案(我完全不知道为什么phonegap文档会如此复杂,以便将phonegap与eclipse集成在一起)


与Javascript和android活动进行通信

这个技巧可以在这个解决方案中完全完成

首先,要使这些工作正常进行,最重要的是确保javascript可以与JAVA插件通信

android平台的JAVA插件只是/src中的.JAVA插件之一

它可以通过javascript中的这个命令调用

    cordova.exec(callback, function(err) {
            callback(err);
        }, "Echo", "echo", [str]);
这是在javascript环境中调用JAVA函数作为插件的cordova函数,其中

回调=函数(ex){alert(ex);};而[str]只是一个字符串数组,如果需要,可以将值传递给插件

最重要的是“Echo”,它是需要在/res/xml/config.xml中的config.xml中注册的插件名称

这些线路应该存在,这样科尔多瓦就能到达回声级

        <feature name="Echo">
            <param name="android-package" value="org.apache.cordova.plugin.Echo" />
        </feature>
        <plugin name="Echo" value="org.apache.cordova.plugin.Echo" />
在JAVA插件中,您可以调用cordova类,然后通过调用

        this.cordova.getActivity()
问:如果调用startActivityForResult来调用JAVA活动而不是startActivity,插件如何检索返回数据

答:简单地说,cordova允许您通过以下方式设置回调活动的JAVA插件

    this.cordova.setActivityResultCallback(this);
完成此操作后,应在完成意图活动时触发JAVA插件中的以下类

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.e("Phonegap", "onActivityResult called");
        }

你不需要一个活动来获得一个简单的字符串,只需要开发一个phonegap插件来返回该字符串
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.e("Phonegap", "onActivityResult called");
        }