cocos creator接入微信登陆sdk ios篇
cocos creator接入微信登陆sdk ios篇
背景已经在Android篇里面交代过了,有兴趣的朋友可以再看看Android篇
步骤
- 去微信开放平台下载ios平台所需要的sdk
- 在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id
- 在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin
- 将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 - 在你的工程文件中选择Build Setting,在"Other Linker Flags"中加入"-force_load $(PROJECT_DIR)/ios/WeChatSDK1.8.4/libWeChatSDK.a(你的libWeChatSDK的位置)",在Search Paths中添加 libWeChatSDK.a ,WXApi.h,WXApiObject.h,文件所在位置(目录)
- 在你需要使用微信终端API的文件中import WXApi.h 头文件,并增加 WXApiDelegate 协议
- 以上都添加完成后,开始写代码逻辑
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篇相关推荐
- cocos creator接入微信登陆sdk android篇
cocos creator接入微信登陆sdk 背景 项目引擎使用cocos creator,使用android studio集成开发工具,在开发之前先做好准备工作 在微信开放平台上创建好移动应用,拿到 ...
- Unity接入微信支付SDK
最近1年转了UE开发,博客更新的比较少,技术栈宽了不少,以后有空尽量多更新,也方便总结记忆 Unity接入微信支付整个过程坑比较多,网上之前的教程要么比较老,要么比较零碎,只能东拼西凑摸索,跑通后还是 ...
- 微信小游戏开发之Cocos Creator使用微信云开发和微信开放能力
主题 Cocos Creator集成微信云开发和调用微信开放能力 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文档中有 ...
- Cocos Creator发布微信小游戏包内体积过大问题
1.初识 设置微信开发工具和js编辑器 3.5.2 :Cocos Creator perferences 2.Cocos Creator发布微信小游戏包内体积过大问题 2.1 已不可取:搭建本机服务器 ...
- Cocos Creator之微信小游戏的游戏圈
Cocos Creator之微信小游戏的游戏圈 1.官方文档游戏圈使用指南 · 小游戏: 2.需要将游戏圈放到指定地方(比如下图,坐标为x:160,y:850,因为游戏圈图标的锚点在左上角,所在层的锚 ...
- Cocos creator导出微信小游戏, 转发给朋友,分享到朋友圈 灰色不能点击
Cocos creator导出微信小游戏, 转发给朋友,分享到朋友圈 灰色不能点击 解决方法如下: onLoad(){ wx.showShareMenu({withShareTicket: true, ...
- 2021年PC电脑网站接入微信登陆支付精讲--1小时自已就可动手接入功能,--所有流程一目了然
2021年了,你还要疲于拼命吗,2001年初,遇到BUG就是躲,放下,去吃最好吃的,吃好喝好,睡一觉,再来解决, 现在是喜欢上BUG了,出现BUG,就发自内心的想搞清楚,是什么源因导致的,呵呵呵 PC ...
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇
// 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment(https://github.com/Essensoft/Pa ...
- cocos creator 部署微信云开发
(这仅为小弟的学习笔记,不作为教程,如有错误请大佬指出) cocos creator中通过调用微信的接口去获取用户授权的信息,之后云函数把用户数据保存至云数据库,再从数据库回调到cocos端处理.比如 ...
最新文章
- 亚马逊首家“无人超市”系统存在bug?!开业当天,记者中途换装成功骗过摄像头...
- java db 10.4.13_Spring Data MongoDB 1.10.13和Mongo 3.4
- 详析数字图像中高斯模糊理论及实现
- 华为端到端项目管理流程_【达睿原创】供应链端到端管理 – 看华为是怎么做的...
- Mac 下搭建环境 homebrew/git/node.js/npm/vsCode...
- Android之 如何在退出一个activity后,很好的取消AsyncTask继续运行
- 企业即时通讯设计理念及实现代码
- 仿58网,赶集网,百姓网swfupload图片上传效果(asp.net 2.0)
- c# mysql 1062_C#中MySQL函数用DATASET 和 MySqlDataAdapter 操作数据库
- ADO.Net(一)——增、删、改、查
- c语言读取三菱plc数据,三菱plc怎么读取程序_电脑读取三菱PLC数据简单方法
- curve BLS12-377/381 BN256 SageMath脚本
- linux mint如何安装输入法(以google输入法为例)
- 服务器系统怎么恢复出厂设置,华为服务器2288恢复出厂设置
- 布鲁特-福斯算法(字符串匹配)
- 15条技巧提高你的写作技巧
- 手机存量市场下的激烈角逐:VO荣米格局初定
- linux绝育玩客云_玩客云绝育,不影响下载功能
- Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering 论文阅读
- 使用c语言实现图像中值滤波,图像处理之中值滤波介绍及C实现