向微信注册应用程序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 ,并加入协议
在- (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
分享或收藏的目标场景,通过修改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];
图片大小有限制,如果分享链接中的图片太大则分享会失败,无法跳转至微信,也不会有任何提示。
部分分享的文字为敏感词,可能会出现分享中展示的图片不显示(经测试分享的字段中包含“拼”字,则图片无法显示)。