Cocos creator 原生iOS微信SDK操作

Cocos creator 原生iOS微信SDK操作
(仅用于creator开发,cocos2d-js有细微差别)
第一步 按照微信官方文档导入微信SDK, 建议手动导入,pod 各种报错
第二步 按照微信官方文档设置相关信息
第三步 按照微信官方文档教程初始化微信SDK
第四步 暴露方法给JS,如下:

// 微信登录

  • (void)wechatLoginWithAppID:(NSString *)appid;
    // 微信分享网页webpage
  • (void)wechatShareWithAppID:(NSString *)appid
    url:(NSString *)url
    title:(NSString *)title
    content:(NSString *)content
    scene:(NSString *)scene;

方法内容参照微信官方文档设置,这里再重复赘述。
第五步 JS调用iOS方法 此处可参照cocos官方文档操作。

第六步 接收回调,参照微信官方文档操作。其中,操作结果需要告知JS,也就是iOS调用JS方法。
引入头文件
#include “cocos/scripting/js-bindings/jswrapper/SeApi.h”
2. 调用JS方法,如下:
NSString* fnStr = [NSString stringWithFormat:@“cc.native.wechatLoginCallBack(”%@")", authResp.code];
[fnStr retain];
// 在cocos线程调用js代码
se::Value *ret = new se::Value();
se::ScriptEngine::getInstance()->evalString([fnStr UTF8String] , -1 , ret);
第七步 js端创建Native.js,代码如下:
var native = cc.native || {}

native.wechatLoginCallBack = null;
native.wechatShareCallBack = null;

/**

  • 微信登录

  • @param appid 应用ID

  • @param callback 回调

  • @returns {*|void}
    */
    native.wechatLogin = function (appid, callback) {

    native.wechatLoginCallBack = callback

    if (cc.sys.platform == cc.sys.ANDROID) {
    return jsb.reflection.callStaticMethod(“com/xuankai6/groupgame/platformSystem/PlatformSystem”, “wechatLoginWithAppID”, “(Ljava/lang/String;)V”, appid);
    } else if (cc.sys.os == cc.sys.OS_IOS) {
    return jsb.reflection.callStaticMethod(“PlatformSystem”, “wechatLoginWithAppID:”, appid);
    }

}

/**

  • 分享网页到微信

  • @param appid 应用id

  • @param url 网页链接

  • @param title 标题

  • @param text 分享描述

  • @param wxscene 分享场景 0 分享给朋友 1 分享到朋友圈

  • @param callback 回调

  • @returns {*|void}
    */
    native.wechatShare = function (appid, url, title, text, wxscene, callback) {

    native.wechatShareCallBack = callback

    if (wxscene == 0){
    wxscene = ‘0’
    }else if (wxscene == 1){
    wxscene = ‘1’
    }

    if (cc.sys.platform == cc.sys.ANDROID) {
    return jsb.reflection.callStaticMethod(“com/xuankai6/groupgame/platformSystem/PlatformSystem”, “wechatShareWithContent”, “(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V”, appid,url,title, text,wxscene);
    } else if (cc.sys.os == cc.sys.OS_IOS) {

     return jsb.reflection.callStaticMethod("PlatformSystem", "wechatShareWithAppID:url:title:content:scene:", appid, url, title, text, wxscene);
    

    }

}

cc.native = native

在需要调用的地方直接cc.native. + 方法名称。

交流:

1赞