鉴于网上的许多文章资料有些老旧,或者不完整.对iOS内分享到微信好友和朋友圈做一个负责任整理.(Xcode 7.2/iOS7.1)
这里指的是使用微信公众平台的方式,当然也可以选择友盟等第三方平台部署.
直接上干货:
- 1.0 第一步当然是要让微信允许你使用它的接口.先到微信开放平台注册. 微信开放平台 需要实名和身份验证. 通过后创建自己的应用.
-
1.1 填写完各种信息提交成功之后需要等待审核,印象中提示需要一周审核时间,以为又是一个漫长的等待,还顺带吐槽了一下这审核速度.结果第二天就审核通过了.你需要的就是下面的AppID.到这里开放平台的准备工作就做好了.另外提一下,如果需要使用微信支付微信登录等高级功能,请准备好300软妹币.
-
2.0 接下来去下载微信工具包,如图
然后把文件拖入到你的项目中,建议看一看README,里面会提到许多需要注意的事项.这个时候项目会有许多的报错,因为需要链接的库还没加入.
-
2.1 在TARGETS - General下导入库,一个不能漏,另外在Xcode7下后缀名有变化,不再是dylib,变成了tbd
- 2.2 给你的项目添加 URL type,URL Types URL Schemes 一栏填写刚刚微信开放平台上申请的应用的AppID.这里直接盗图.感谢图源君
- 2.3 在Info.plist文件里添加字段 LSApplicationQueriesSchemes ,原因是因为iOS 9之后对HTTP访问的限制.微博/空间/支付宝等类似,参考这篇文章或者自己去翻文档吧.长这样:
- 2.4 还需要暂时回退到HTTP支持,就是在plist文件中添加HTTP支持.写在这里.
3.0 准备工作貌似做完了,先运行看看,然后就可以写代码了.
-
3.1 去AppDelegate注册AppID并重写两个代理方法.记得导入WXApi.h头文件.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//注册微信ID
[WXApi registerApp:@"your AppID"];
return YES;
}- (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]; }
-
3.2 在你需要的地方调用方法分享就行了.记得头文件.
if ([WXApi isWXAppInstalled] && [WXApi isWXAppSupportApi]) {
//message是多媒体分享(链接/网页/图片/音乐各种)
//text是分享文本,两者只能选其一
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
WXMediaMessage *message = [WXMediaMessage message];
message.title = @"Hi 天气 - 这里是标题";
message.description = @"不给糖就捣蛋,还不快去下载加好评!";
[message setThumbImage:[UIImage imageNamed:@"这里是缩略图"]];
req.message = message;
WXAppExtendObject *ext = [WXAppExtendObject object];
ext.url = @"https://itunes.apple.com/us/app/hi-tian-qi/id1146330042?mt=8";
ext.extInfo = @"Hi 天气";
message.mediaObject = ext;
//默认是Session分享给朋友,Timeline是朋友圈,Favorite是收藏
req.scene = WXSceneSession;[WXApi sendReq:req]; } else { [SVProgressHUD showInfoWithStatus:@"你还没有安装微信"]; }
3.3 Tip:AppStore的分享链接打不开只能绕路了,什么?你说应用宝?还好我机智的用了iTunes分享链接,直走左转然后绕过那个弯再往前100m的左手边就到了.
3.4 如果编译遇到
unable to execute command: Segmentation fault: 11
和linker command failed due to signal (use -v to see invocation)
错误,就关闭BitcodeTarget->Build Settings->Enable Bitcode
.3.5 看见链接了吗,没看见我再给一遍,快去下载. Hi 天气 - 不给糖就捣蛋!
由于笔者知识有限,如有错误,欢迎指出。