iOS分享到微信好友和微信朋友圈

鉴于网上的许多文章资料有些老旧,或者不完整.对iOS内分享到微信好友和朋友圈做一个负责任整理.(Xcode 7.2/iOS7.1)

这里指的是使用微信公众平台的方式,当然也可以选择友盟等第三方平台部署.
直接上干货:
  • 1.0 第一步当然是要让微信允许你使用它的接口.先到微信开放平台注册. 微信开放平台 需要实名和身份验证. 通过后创建自己的应用.
    iOS分享到微信好友和微信朋友圈_第1张图片
  • 1.1 填写完各种信息提交成功之后需要等待审核,印象中提示需要一周审核时间,以为又是一个漫长的等待,还顺带吐槽了一下这审核速度.结果第二天就审核通过了.你需要的就是下面的AppID.到这里开放平台的准备工作就做好了.另外提一下,如果需要使用微信支付微信登录等高级功能,请准备好300软妹币.


    iOS分享到微信好友和微信朋友圈_第2张图片
  • 2.0 接下来去下载微信工具包,如图


    iOS分享到微信好友和微信朋友圈_第3张图片

    然后把文件拖入到你的项目中,建议看一看README,里面会提到许多需要注意的事项.这个时候项目会有许多的报错,因为需要链接的库还没加入.


    iOS分享到微信好友和微信朋友圈_第4张图片
  • 2.1 在TARGETS - General下导入库,一个不能漏,另外在Xcode7下后缀名有变化,不再是dylib,变成了tbd


    iOS分享到微信好友和微信朋友圈_第5张图片
  • 2.2 给你的项目添加 URL type,URL Types URL Schemes 一栏填写刚刚微信开放平台上申请的应用的AppID.这里直接盗图.感谢图源君
    iOS分享到微信好友和微信朋友圈_第6张图片
  • 2.3 在Info.plist文件里添加字段 LSApplicationQueriesSchemes ,原因是因为iOS 9之后对HTTP访问的限制.微博/空间/支付宝等类似,参考这篇文章或者自己去翻文档吧.长这样:
    iOS分享到微信好友和微信朋友圈_第7张图片
  • 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 天气 - 不给糖就捣蛋!


由于笔者知识有限,如有错误,欢迎指出。

你可能感兴趣的:(iOS分享到微信好友和微信朋友圈)