CocosCreator之KUOKUO带你搞反射-简单的安卓交互
摘要
在使用 CocosCreator 打包的原生应用中,我们可以通过引擎封装好的反射机制调用 Java 的静态方法,从而实现提示、相册、支付跳转等功能。本次内容为环境介绍与简单的交互。
正文
先看效果
版本说明
- CocosCreator 为 2.2.1 版本。
- AndroidStudio 为 3.5.2 版本。
- JDK 为 13 版本。(具体:13.0.1)
- NDK 为 20 版本。(具体:20.1.5948944)
- SDK 安装了 API 23 的。
- 模拟器为 AVD。(可以在 AndroidStudio 内安装)
CocosCreator 设置截图:
jsb 的反射方法
写一个获取字符串的方法:
const className = "org/cocos2dx/javascript/AppActivity" |
在 callStaticMethod 方法中,我们通过传入 Java 的类名,方法名,传入参数类型与返回类型,就可以直接调用 Java 的静态方法。其中方法名后面的参数代表类型。比如 “()V” 代表无参数无返回值,”()I” 代表无参数整型返回值(int)。具体的对应见下表。
布局
在 CocosCreator 中布局好两个按钮一个文本,在脚本中写两个方法并绑定至按钮,如图。
脚本
cc.Class({ |
一切就绪,点击构建面板的“构建”,完成后在 “/build/jsb-default/frameworks/runtime-src/“ 下你会发现 “proj.android-studio” 文件夹,这就是 AndroidStudio 工程,打开并 Build。
Java 写法
找到 Java 文件 “/app/src/org/cocos2dx/javascript/AppActivity.java”,然后我们添加对应的静态方法:
public static String getTestText () { |
这样就完成了第一个显示。然后接下来调用 Toast 提示要注意,cocos 引擎的渲染和 JS 的逻辑是在 GL 线程中进行的,而 Android 本身的 UI 更新是在 App 的 UI 线程进行的,所以 Toast 需要在 UI 线程进行,写法也很简单。
// 先定义一个静态变量 app 用于接收 this。 |
这样就实现了 Toast 提示的弹出!给个全部截图:
结语
有意思吧,我们下一次介绍如何调起相机并选择图片!
O(∩_∩)O~~
微信公众号
CocosCreator之KUOKUO带你搞反射-简单的安卓交互