iOS-微信分享SDK

官方文档:微信开放平台

向微信注册应用程序id

开发者应用登记页面进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。

搭建开发环境

  • 通过终端在工程的Podfile里面添加以下代码:

platform :ios, '8.0'

target '工程名' do

pod 'WechatOpenSDK'

end
  • 保存并pod install

  • 设置工程项
    在Xcode中,选择工程设置项,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(AppID)。identifierweixinURL 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];
  • 图片大小有限制,如果分享链接中的图片太大则分享会失败,无法跳转至微信,也不会有任何提示。
  • 部分分享的文字为敏感词,可能会出现分享中展示的图片不显示(经测试分享的字段中包含“拼”字,则图片无法显示)。

你可能感兴趣的:(iOS-微信分享SDK)