使用cocos creator 2.x 遇到的问题及解决办法!持续更新中

第23粒: 接微信SDK时, 没有回调


画线的3处 包名 要一致, 也就是在CC里设置的包名

另外:很重要
java这边一定要有这个包,而且WXEntryActivity.java也一定放到这个包下面的 .wxapi 包里

还有这句一定要有!

第24粒: 关于 java回调js
Cocos2dxJavascriptJavaBridge.evalString(“cc.js_wxLogin(” + code + “)”);
别再弄这个了,根本不行, 调用简单的JS语句还可以,如果调用自己写的 模块.方法,还加参数,
一定要用 消息通知的形式

java代码:

js代码:

看了一下,当你遇到错误时,先想想为什么是错的,而不是第一感觉是换一种方法。你这些事例我看了,有很多是你用错了。比如widget,是因为你的父节点的大小为0,比如setInterval,这是js的方法,跟组件无关,自然不会跟组件的生命周期挂钩,应该用shedule,安卓调用js那个方法不是不行,是你的字符串拼接错了,而且线程是不是对的。

你说得对,同一个实现,有很多个方法,找不到对应的好办法,只能找一个可以实现的办法了,
比如 java掉js那个,文档就这么一写,试了不好用,网上百度了一下,也没更好的办法!

我这里有不太好的解决办法,你要是有更好的,更准确的,能给解答一下最好啦!

使用这个也是可以的
需要在js代码里添加 jsEngineCallback 这个方法

第25粒 接微信登录 安卓版
image

image

这两个方法最好放到 WXEntryActivity类中



两个方法的 finish();都要有

之前都是放到程序入口Activity里的,
但因为 主入口Activity不能finish(); 所以导致 从微信返回时,程序是被hold的,必须按一下返回键
才可以!现在这么改动一下OK了!

Cocos2dxActivity.java
Cocos2dxEditBox.java

是在引擎里的代码模板
D:\CocosDashboard_1.0.10\resources.editors\Creator\2.4.4\resources\cocos2d-x\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxActivity.java

如果项目换引擎版本了,记得这里也要相应的修改啊!!!

第26粒:iOS接微信登陆 拿到code后回掉js部分

下面是 js里定义的全局方法,放哪里都成,在登陆之前要执行得到即可
image

第27粒::: 实现一个屏幕点击并穿透,
161828253996800_00_01--00_00_07

上层点击时 不吞噬点击事件,

这两行代码 都可以 ,用哪个都行!

第28粒:
如果你的 Android 项目 Module的 build.gradle 里有
implementation ‘com.android.support:support-compat:28.0.0’
这个包可以去掉了, 去掉后,apk可以减少1MB

还要改 AppActivity.java类里

import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;

上面三个换下面三个
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

第29粒: 关于热更新
每次安装客户端 apk 时,要删除本地已经热更新下来的资源,
否则: 热更的文件 先于apk内的js脚本执行, 还可能引起崩溃

第30粒 如果谷歌商店拒绝了你,看看你是否用了这个包

SDKHub 完全没用上! 还指望他能接SDK,结果给我挖了个大坑!

1赞

一个参数的OK了
多个参数的如何解决?


这行 这么写多参数不行啊!

ver2int比较版本号可能会出错,比如:2.0.0和1.10.0哪个大?

我这个是 不能出现 10这个版本的 都是0到9
如果你有10或者更大的版本 你自行修改一下 ver2int 这个方法就好了!

我们以前做2dx的经验,打开时判断是否是重新装的包,如果是,删除可写入路径下所有文件

这个具体怎么判断的?不用版本号判断吗?

说错了,是版本号,不过我们是分开的两个字段,不是你这种