官方文档:微信开放平台
向微信注册应用程序id
到开发者应用登记页面
进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。
搭建开发环境
- 通过终端在工程的Podfile里面添加以下代码:
platform :ios, '8.0'
target '工程名' do
pod 'WechatOpenSDK'
end
保存并
pod install
设置工程项
在Xcode中,选择工程设置项,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(AppID)。identifier
为weixin
,URL Schemes
为所注册的应用程序id。
设置AppDelegate
导入#import <WXApi.h>,并加入<WXApiDelegate>协议
在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中向微信终端注册AppID,写入[WXApi registerApp:@"wxfba72eb585ced789"];
重写AppDelegate的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{
return [WXApi handleOpenURL:url delegate:self];
}
- 如果App要发消息给微信,那么需要调用WXApi的sendReq函数:
-(BOOL) sendReq:(BaseReq*)req
实现分享功能
导入#import <WXApi.h>
分享或收藏的目标场景,通过修改scene场景值实现。共分为以下四种场景:
发送到聊天界面——WXSceneSession
发送到朋友圈——WXSceneTimeline
添加到微信收藏——WXSceneFavorite
- 分享类型,具体查看微信开发文档。此处以最常用的网页类型分享为例。
WXMediaMessage * message = [WXMediaMessage message];
message.title = @"这是一个分享标题";
message.description = @"我是分享内容";
[message setThumbImage:[UIImage imageNamed:@"这是一张图片"]];
WXWebpageObject * webPageObject = [WXWebpageObject object];
//webPageObject.webpageUrl = @"https://douban.fm/?from_=shire_top_nav#/channel/153";
webPageObject.webpageUrl = @"这是一个链接";
message.mediaObject = webPageObject;
SendMessageToWXReq * req1 = [[SendMessageToWXReq alloc]init];
req1.bText = NO;
req1.message = message;
//设置分享到朋友圈(WXSceneTimeline)、好友回话(WXSceneSession)、收藏(WXSceneFavorite)
req1.scene = WXSceneSession;
[WXApi sendReq:req1];
- 图片大小有限制,如果分享链接中的图片太大则分享会失败,无法跳转至微信,也不会有任何提示。
- 部分分享的文字为敏感词,可能会出现分享中展示的图片不显示(经测试分享的字段中包含“拼”字,则图片无法显示)。