cocos creator接入微信登陆sdk ios篇

背景已经在Android篇里面交代过了,有兴趣的朋友可以再看看Android篇
步骤

  1. 去微信开放平台下载ios平台所需要的sdk
  2. 在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id
  3. 在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin
  4. 将SDK文件中包含的 libWeChatSDK.a,WXApi.h,WXApiObject.h 三个文件添加到你所建的工程中,并将libWeChatSDK.a添加到依赖中


    微信开放平台新增了微信模块用户统计功能,便于开发者统计微信功能模块的用户使用和活跃情况。如果需要使用的话开发者需要在工程中链接上:SystemConfiguration.framework, libz.dylib, libsqlite3.0.dylib, libc++.dylib, Security.framework, CoreTelephony.framework, CFNetwork.framework,CoreGraphics.framework
  5. 在你的工程文件中选择Build Setting,在"Other Linker Flags"中加入"-force_load $(PROJECT_DIR)/ios/WeChatSDK1.8.4/libWeChatSDK.a(你的libWeChatSDK的位置)",在Search Paths中添加 libWeChatSDK.a ,WXApi.h,WXApiObject.h,文件所在位置(目录)
  6. 在你需要使用微信终端API的文件中import WXApi.h 头文件,并增加 WXApiDelegate 协议
  7. 以上都添加完成后,开始写代码逻辑
    a) 在主文件中引入WXApi.h,并定义好需要用到的参数code

    b)在didFinishLaunchingWithOptions函数中向微信终端注册你的id

    c) 重写handleOpenURL和openURL方法
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {return  [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {BOOL isSuc = [WXApi handleOpenURL:url delegate:self];NSLog(@"url %@ isSuc %d",url,isSuc == YES ? 1 : 0);return  isSuc;
}

d)添加回调方法

-(void) onResp:(BaseResp*)resp{if([resp isKindOfClass:[SendAuthResp class]]){SendAuthResp *aresp = (SendAuthResp *)resp;if (aresp.errCode== 0) {//_wxCode = aresp.code;NSLog(@"resp.Code = %@",aresp.code);isGetCode=1;wxCode=aresp.code;NSLog(@"wxCode = %@",wxCode);[self callJsEngineCallBack:@"cc.jsEngineCallback" :wxCode];  //此处的cc.jsEngineCallback是creator里面js定义的全局函数}}}
//定义参数的返回
-(void)callJsEngineCallBack:(NSString*) funcNameStr :(NSString*) contentStr
{NSLog(@"callJsEngineCallBack...");std::string funcName = [funcNameStr UTF8String];std::string param = [contentStr UTF8String];std::string jsCallStr = cocos2d::StringUtils::format("%s(\"%s\");",funcName.c_str(), param.c_str());NSLog(@"jsCallStr = %s", jsCallStr.c_str());ScriptingCore::getInstance()->evalString(jsCallStr.c_str());
}

e)定义触发微信登录的函数

+(void)sendAuthRequest
{//构造SendAuthReq结构体SendAuthReq* req =[[[SendAuthReq alloc ]init ] autorelease ];req.scope = @"snsapi_userinfo";req.state = @"123" ;//第三方向微信终端发送一个SendAuthReq消息结构[WXApi sendReq:req];//NSLog(@"微信登录 weixin login");
}

ios底层代码写好后,回到js中
首先需要点击登录按钮后拉取微信,需要调用OC代码中定义好的函数

微信登录成功后OC中拿到的code需要传到js当中,所以在js里面我们定义一个全局函数

全局函数中拿到了code,就可以拿去验证登录了,登录验证完成,再去调用一次底层代码清除掉code,这样就不会拿到重复的code了


微信登录完成!

cocos creator接入微信登陆sdk ios篇相关推荐

  1. cocos creator接入微信登陆sdk android篇

    cocos creator接入微信登陆sdk 背景 项目引擎使用cocos creator,使用android studio集成开发工具,在开发之前先做好准备工作 在微信开放平台上创建好移动应用,拿到 ...

  2. Unity接入微信支付SDK

    最近1年转了UE开发,博客更新的比较少,技术栈宽了不少,以后有空尽量多更新,也方便总结记忆 Unity接入微信支付整个过程坑比较多,网上之前的教程要么比较老,要么比较零碎,只能东拼西凑摸索,跑通后还是 ...

  3. 微信小游戏开发之Cocos Creator使用微信云开发和微信开放能力

    主题 Cocos Creator集成微信云开发和调用微信开放能力 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文档中有 ...

  4. Cocos Creator发布微信小游戏包内体积过大问题

    1.初识 设置微信开发工具和js编辑器 3.5.2 :Cocos Creator perferences 2.Cocos Creator发布微信小游戏包内体积过大问题 2.1 已不可取:搭建本机服务器 ...

  5. Cocos Creator之微信小游戏的游戏圈

    Cocos Creator之微信小游戏的游戏圈 1.官方文档游戏圈使用指南 · 小游戏: 2.需要将游戏圈放到指定地方(比如下图,坐标为x:160,y:850,因为游戏圈图标的锚点在左上角,所在层的锚 ...

  6. Cocos creator导出微信小游戏, 转发给朋友,分享到朋友圈 灰色不能点击

    Cocos creator导出微信小游戏, 转发给朋友,分享到朋友圈 灰色不能点击 解决方法如下: onLoad(){ wx.showShareMenu({withShareTicket: true, ...

  7. 2021年PC电脑网站接入微信登陆支付精讲--1小时自已就可动手接入功能,--所有流程一目了然

    2021年了,你还要疲于拼命吗,2001年初,遇到BUG就是躲,放下,去吃最好吃的,吃好喝好,睡一觉,再来解决, 现在是喜欢上BUG了,出现BUG,就发自内心的想搞清楚,是什么源因导致的,呵呵呵 PC ...

  8. ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    // 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment(https://github.com/Essensoft/Pa ...

  9. cocos creator 部署微信云开发

    (这仅为小弟的学习笔记,不作为教程,如有错误请大佬指出) cocos creator中通过调用微信的接口去获取用户授权的信息,之后云函数把用户数据保存至云数据库,再从数据库回调到cocos端处理.比如 ...

最新文章

  1. 亚马逊首家“无人超市”系统存在bug?!开业当天,记者中途换装成功骗过摄像头...
  2. java db 10.4.13_Spring Data MongoDB 1.10.13和Mongo 3.4
  3. 详析数字图像中高斯模糊理论及实现
  4. 华为端到端项目管理流程_【达睿原创】供应链端到端管理 – 看华为是怎么做的...
  5. Mac 下搭建环境 homebrew/git/node.js/npm/vsCode...
  6. Android之 如何在退出一个activity后,很好的取消AsyncTask继续运行
  7. 企业即时通讯设计理念及实现代码
  8. 仿58网,赶集网,百姓网swfupload图片上传效果(asp.net 2.0)
  9. c# mysql 1062_C#中MySQL函数用DATASET 和 MySqlDataAdapter 操作数据库
  10. ADO.Net(一)——增、删、改、查
  11. c语言读取三菱plc数据,三菱plc怎么读取程序_电脑读取三菱PLC数据简单方法
  12. curve BLS12-377/381 BN256 SageMath脚本
  13. linux mint如何安装输入法(以google输入法为例)
  14. 服务器系统怎么恢复出厂设置,华为服务器2288恢复出厂设置
  15. 布鲁特-福斯算法(字符串匹配)
  16. 15条技巧提高你的写作技巧
  17. 手机存量市场下的激烈角逐:VO荣米格局初定
  18. linux绝育玩客云_玩客云绝育,不影响下载功能
  19. Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering 论文阅读
  20. 使用c语言实现图像中值滤波,图像处理之中值滤波介绍及C实现

热门文章

  1. 百度云下载转化为迅雷下载的解决办法
  2. mysql将VARBINARY转为字符串显示方法
  3. 中文技术文档写作规范【转载】
  4. 移动应用Kony Solutions并购Sky Technologies
  5. 蚂蚁金服6面,成功唬住面试官拿了36K
  6. 逻辑函数常用的描述方法及相互间的转化
  7. 内部管理类软件基础架构思想(思路图解 + 配套免费视频)
  8. python三门问题_三门问题之python解答
  9. 计算机网络战队名称大全,游戏战队名字大全要霸气
  10. java计算长方形面积代码小数_求一个计算正方形面积的Java程序