iOS9友盟微信分享

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值