在Android中混合Cordova和本机活动

丧葬者

我希望我的大部分应用程序(列表项,存储,登录,关于屏幕等...)都在cordova中处理,因为在本机工作流程中这样做很痛苦。

但是我有一个特定的活动(我已经创建了),而cordova无法完成(至少不够好和不够快)。我应该如何创建这个程序?

  • 我是否应该创建只加载这两个活动的cordova插件?
  • 我应该通过cli生成cordova应用程序还是应该将cordova嵌入到一项活动中?

如果对此有更多资料,我很想听听。

提前致谢。

jcesarmobile

这取决于您创建的活动。

如果您的主要活动是科尔多瓦屏幕,并且将是全屏,并且对科尔多瓦部分的某些操作将启动您的本机活动以执行某个任务,那么您应该使用该插件,使用意图启动您的活动完成后,请关闭它并返回Cordova活动,是否返回一个值。

如果您想将Cordova视图与本机视图混合使用,而全屏视图都不是全屏显示,则应将Cordova嵌入本机项目中。

如果您的活动将成为您的主要活动,那么嵌入Cordova是您的唯一选择。

如您所要求的示例,并且您认为真正的插件不是一个好例子,我将简化插件创建指南

插件需要一个如下所示的plugin.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
        id="your-plugin-id" version="1.0.0">
    <name>pluginName</name>
    <description>description of the plugin</description>
    <license>License of the plugin</license>
    <js-module src="www/pluginName.js" name="pluginName">
        <clobbers target="pluginName" />
    </js-module>
    <platform name="android">
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="PluginName" >
                <param name="android-package" value="your.plugin.package.pluginName"/>
            </feature>
        </config-file>

        <source-file src="src/android/PluginName.java" target-dir="your/plugin/package/PluginName" />
    </platform>
</plugin>

通过查看它,您可以看到还需要一个带有pluginName.js文件的www文件夹,以及一个带有pluginName.java文件的src / android文件夹。

pluginName.js应该类似于:

function showNativeView() {
    cordova.exec(successCallback, errorCallback, "PluginName", "showNativeView", [arguments]);
}

第一个参数是插件完成执行时调用的successCallback函数。第二个参数是如果插件有任何问题时要调用的errorCallback函数。第三个参数是您将调用的Java类的名称,它必须与plugin.xml上的名称相匹配。第四个参数是在Java类中调用的动作第五个是数组或参数(如果要发送任何一个)。要执行它,请单击按钮,或者按需要调用showNativeView()。提醒一下,这过于简化了,正确的做法应该是为插件创建一个名称空间并向其中添加不同的功能,但我想保持其简单性。

最后,PluginName.java应该是这样的:

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if ("showNativeView".equals(action)) {
            Intent yourIntent = new Intent(this.cordova.getActivity().getBaseContext(), YourActivityToLaunch.class);
cordova.getActivity().startActivity(yourIntent);
            callbackContext.success();
            return true;
        }
        return false;  // Returning false results in a "MethodNotFound" error.
    }

这会启动一个简单的意图,该意图不会返回任何内容,如果您的活动返回了某些内容,则必须使用

this.cordova.startActivityForResult(this, yourIntent, REQUEST_CODE);

并添加

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    String result = intent.getStringExtra("WHATEVER_THE_INTENT_RETURNS"),
    this.callbackContext.success(result);
}

您在此处调用成功而不是在启动意图后立即执行,然后返回活动返回的值。您还应该检查REQUEST_CODE,使其与用于启动该意图的活动,活动结果等相匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

混合与本机开发(Android和iOS)

来自分类Dev

PhoneGap / Cordova和本机Android / iOS后端

来自分类Dev

如何在Android本机应用程序活动中画圆

来自分类Dev

在Cordova config.xml中更改Android活动名称

来自分类Dev

Cordova 从 Android 上的最近活动列表中隐藏屏幕

来自分类Dev

如何在Worklight中实现本机和混合应用程序之间的交互?

来自分类Dev

在Java应用程序中混合运行32位和64位本机库

来自分类Dev

如何在Worklight中实现本机和混合应用程序之间的交互?

来自分类Dev

如何在像android这样的本机反应中使用route-flux模块在本机反应中完成活动/屏幕?

来自分类Dev

在onPause / onResume上反应本机+ Android活动

来自分类Dev

Cordova项目添加Android本机模块

来自分类Dev

带有Angular和Cordova的混合应用程序:动态内容未在IOS中呈现

来自分类Dev

在 ios 和 android 的本机反应中推送通知

来自分类Dev

活动图和Android活动

来自分类Dev

Cordova插件Android活动-访问资源

来自分类Dev

通过Cordova Ace插件启动android活动

来自分类Dev

Android上的Adobe AIR与本机Android活动进行通信

来自分类Dev

Cordova 3 Android插件-如何在主要活动中调用函数?

来自分类Dev

所有活动中的Android Same Button和Listview

来自分类Dev

Android-托管在TabActivity和windowSoftInputMode中的ScrollView活动

来自分类Dev

Android:AlarmManager和PendingIntent不会从其他活动中取消

来自分类Dev

什么是Android中“不保留活动”的主要优点和缺点

来自分类Dev

活动布局android 4.1.2中seekbar和spinner的外观

来自分类Dev

android 7 中图标和主要活动的不同标签

来自分类Dev

创建支持本机和支持片段/活动的库

来自分类Dev

在excel的“IF”块中混合“AND”和“OR”

来自分类Dev

混合移动应用程序:PhoneGap和Cordova之间的区别

来自分类Dev

Android空活动和空白活动

来自分类Dev

Android 本机活动,GLES 3.0 着色器编译失败

Related 相关文章

  1. 1

    混合与本机开发(Android和iOS)

  2. 2

    PhoneGap / Cordova和本机Android / iOS后端

  3. 3

    如何在Android本机应用程序活动中画圆

  4. 4

    在Cordova config.xml中更改Android活动名称

  5. 5

    Cordova 从 Android 上的最近活动列表中隐藏屏幕

  6. 6

    如何在Worklight中实现本机和混合应用程序之间的交互?

  7. 7

    在Java应用程序中混合运行32位和64位本机库

  8. 8

    如何在Worklight中实现本机和混合应用程序之间的交互?

  9. 9

    如何在像android这样的本机反应中使用route-flux模块在本机反应中完成活动/屏幕?

  10. 10

    在onPause / onResume上反应本机+ Android活动

  11. 11

    Cordova项目添加Android本机模块

  12. 12

    带有Angular和Cordova的混合应用程序:动态内容未在IOS中呈现

  13. 13

    在 ios 和 android 的本机反应中推送通知

  14. 14

    活动图和Android活动

  15. 15

    Cordova插件Android活动-访问资源

  16. 16

    通过Cordova Ace插件启动android活动

  17. 17

    Android上的Adobe AIR与本机Android活动进行通信

  18. 18

    Cordova 3 Android插件-如何在主要活动中调用函数?

  19. 19

    所有活动中的Android Same Button和Listview

  20. 20

    Android-托管在TabActivity和windowSoftInputMode中的ScrollView活动

  21. 21

    Android:AlarmManager和PendingIntent不会从其他活动中取消

  22. 22

    什么是Android中“不保留活动”的主要优点和缺点

  23. 23

    活动布局android 4.1.2中seekbar和spinner的外观

  24. 24

    android 7 中图标和主要活动的不同标签

  25. 25

    创建支持本机和支持片段/活动的库

  26. 26

    在excel的“IF”块中混合“AND”和“OR”

  27. 27

    混合移动应用程序:PhoneGap和Cordova之间的区别

  28. 28

    Android空活动和空白活动

  29. 29

    Android 本机活动,GLES 3.0 着色器编译失败

热门标签

归档