微信SDK的使用
关于项目中常用到的微信功能做个总结:
首先我们要知道微信开放平台的地址,那就是:https://open.weixin.qq.com
微信接入
1.在开发平台上注册应用,AppID。
(请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。)
2.下载SDK文件
包括libWeChatSDK.a,WXApi.h,WXApiObject.h三个
3.搭建开发环境
3.1通过CocoaPods集成
[1] 在XCode中建立你的工程。
[2] 在工程的Podfile里面添加以下代码:
pod 'WechatOpenSDK'
保存并执行pod install,然后用后缀为.xcworkspace的文件打开工程。
注意:
命令行下执行pod search WechatOpenSDK,如显示的WechatOpenSDK版本不是最新的,则先执行pod repo update操作更新本地repo的内容
[3] 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(如下图所示)。
![](https://img.haomeiwen.com/i2579659/e07db799737e1e51.jpg)
[4] 在你需要使 用微信终端API的文件中import WXApi.h 头文件,并增加 WXApiDelegate 协议。
3.2手动集成
[1] 在XCode中建立你的工程。
[2] 将SDK文件中包含的 libWeChatSDK.a,WXApi.h,WXApiObject.h 三个文件添加到你所建的工程中。
[3] 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id。
[4] 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin(如下图所示)。
![](https://img.haomeiwen.com/i2579659/54ca4dd0f5d8e3e2.jpeg)
[5] 在你需要使 用微信终端API的文件中import WXApi.h 头文件,并增加 WXApiDelegate 协议。
4.在代码中使用开发工具包
[1] 要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。(如下图所示,在 AppDelegate 的 didFinishLaunchingWithOptions 函数中向微信注册id)。
![](https://img.haomeiwen.com/i2579659/75333e8198fc1942.png)
[2] 重写AppDelegate的handleOpenURL和openURL方法:
![](https://img.haomeiwen.com/i2579659/20528c1aaea75ba5.png)
[3] 现在,你的程序要实现和微信终端交互的具体请求与回应,因此需要实现WXApiDelegate协议的两个方法:
-(void) onReq:(BaseReq*)reqonReq是微信终端向第三方程序发起请求,要求第三方程序响应。第三方程序响应完后必须调用sendRsp返回。在调用sendRsp返回时,会切回到微信终端程序界面。
-(void) onResp:(BaseResp*)resp如果第三方程序向微信发送了sendReq的请求,那么onResp会被回调。sendReq请求调用后,会切到微信终端程序界面。
具体在此两方法中所要完成的内容由你定义,具体可参考微信开发工具包中的SDK Sample Demo源码。
[4] 如果你的程序要发消息给微信,那么需要调用WXApi的sendReq函数:
-(BOOL) sendReq:(BaseReq*)req其中req参数为SendMessageToWXReq类型。
需要注意的是,SendMessageToWXReq的scene成员,如果scene填WXSceneSession,那么消息会发送至微信的会话内。如果scene填WXSceneTimeline,那么消息会发送至朋友圈。如果scene填WXSceneFavorite,那么消息会发送到“我的收藏”中。scene默认值为WXSceneSession。
至此,你已经能使用微信终端SDK的API内容了。如果想更详细了解每个API函数的用法,请查阅 官网API文档 或自行下载阅读微信SDK Sample Demo源码。
微信登录
开发者需要配合使用微信开放平台提供的SDK进行授权登录请求接入。正确接入SDK后并拥有相关授权域(scope,什么是授权域?)权限后,开发者移动应用会在终端本地拉起微信应用进行授权登录,微信用户确认后微信将拉起开发者移动应用,并带上授权临时票据(code)。
iOS平台应用授权登录接入代码示例(请参考iOS接入指南):
-(void)sendAuthRequest
{
//构造SendAuthReq结构体
SendAuthReq* req = [[SendAuthReq alloc ] init];
req.scope = @"snsapi_userinfo" ;
req.state = @"123" ;
//第三方向微信终端发送一个SendAuthReq消息结构
[WXApi sendReq:req];
}