iOS9友盟微信分享

来源:互联网 发布:四驱车奥迪双钻 淘宝 编辑:程序博客网 时间:2024/06/15 05:51

此文记录了在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成长之路的点点滴滴,微信扫描即可关注

0 1