此文记录了在iOS9下使用了友盟微信纯图片分享。
前提
注册友盟账号
访问友盟官方网站,在官方注册账号获取AppKey。
微信账号
登录微信开放平台(点击链接),填写相关应用信息,审核通过后获取到微信AppID及AppSecret
下载SDK
根据所需下载响应的SDK,并导入工程。
开始
导入系统库
-
libsqlite3.tbd
-
libc++.1.tbd
-
SystemConfigure.framework
添加方法:选择target->Build Phases->Link Binary With Libraries
搜索添加。
AppDelegate
#import "UMSocial.h"
#import "UMSocialWechatHandler.h"
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 设置友盟AppKey
[UMSocialData setAppKey:UmengAppKey];
// 设置微信AppId和AppSecret
[UMSocialWechatHandler setWXAppId:@"wx1a1183fca86e9***" appSecret:@"2f5ec5470d4fb127e2ce8bc15dd8e***" url:@"http://www.umeng.com/social"];
return YES;
}
url
参数:如果你分享的网页url为空,那么默认会用这个地址。
Plist文件
URL types
在info.plist文件中添加一个URL types字段。
直接上图:
兼容
以iOS9 SDK编译的工程会默认以SSL安全协议进行网络传输,即HTTPS,如果依然使用HTTP协议请求网络会报系统异常并中断请求。目前可用如下两种方式保持用HTTP进行网络连接:
需要在plist文件中添加如下字段:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
效果如图:
在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。
需要添加如下字段:
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- 微信 URL Scheme 白名单-->
<string>wechat</string>
<string>weixin</string>
<array>
效果如图:
如果未添加如上字段会提示:您的设备没有安装微信
控制台会打出如下错误信息:
-canOpenURL: failed for URL: "weixin://app/wxff569f1617559261/" - error: "This app is not allowed to query for scheme weixin"
分享页面
首先,在需要分享内容的控制器中申明代理,并在分享事件中添加如下代码。
// 分享类型
[UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeImage;
UIImage *shareImage = [UIImage imageNamed:@"image"];
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法
[[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToSina] content:@"" image:shareImage location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
if (response.responseCode == UMSResponseCodeSuccess) {
NSLog(@"分享成功!");
}
}];
[UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeImage;
该方法一定要写在前面否者第一次会以网页的形式分享。
更多详情请访问官方文档。
iOSTalk,分享iOS成长之路的点点滴滴,微信扫描即可关注