前提:论坛没有找到接二维码的方案,因为项目遇到了,分享一下,我是鸦哥的弟弟,所以比较菜
二维码的安卓库:
1.zxing这个不懂安卓的人,应该搞不定。。。
2.git上找到一个yipianfengye封装好的zxing的几行代码接入的教程,可是年代过于古老,我没有跑起来,莫名其妙的错误一堆。(我是安卓彩笔)
3. HMS Scankit 华为的二维码sdk(这个很简单我喜欢)
步骤如下
1)引用接入华为的sdk,文档在这个 自己看吧。。。
https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/scan-introduction-4
2)调用android
if (cc.sys.isNative && cc.sys.os == cc.sys.OS_ANDROID) {
jsb.reflection.callStaticMethod(“org/cocos2dx/javascript/AppActivity”, “scan”, “()V”);
}
3)编写安卓部分内容
// 这个用于赋值当前的activity
private static Activity mContext;
// 这个用于判断二维码activity关闭时候的返回值
private static int REQUEST_CODE_SCAN_ONE = 111;
/**扫描二维码 */
public static void scan() {
Intent intent = new Intent(mContext, ScanKitActivity.class);
mContext.startActivityForResult(intent, REQUEST_CODE_SCAN_ONE);
}
// activity关闭的结果
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if ((requestCode == REQUEST_CODE_SCAN_ONE) && (resultCode == Activity.RESULT_OK)) {
HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);
if (obj != null && obj.getOriginalValue() != null) {
String res = obj.getOriginalValue();
Log.d(“ddd”, “onActivityResult: 扫描结果:” + res);
RCODE = res;
this.callJs();
}
}
}
/*返回结果/
public void callJs() {
this.runOnGLThread(new Runnable() {
@Override
public void run() {
String js = “NativeHelper.message({name:”;
js += “’” + “scan” + “’,”;
js += “value:’” + RCODE + “’})”;
Log.d(“ddd”, "run: " + js);
Cocos2dxJavascriptJavaBridge.evalString(js);
}
});
}
4) cocos监听返回的结果
window.NativeHelper = {
message: function(msg) {
if(msg) {
console.log(JSON.stringify(msg))
}
}
}
有需要的
https://github.com/uer7e67/cocos-creator-QRcode // 地址在这个
小提示:.gitignore 删除build就可以吧build提交到git上