IOS 友盟分享功能相关问题

1.分享功能弹出控制面板

[UMSocialSnsService presentSnsIconSheetView:self

appKey:@"507fcab25270157b37xxxxxx"

shareText:@"你要分享的文字"

shareImage:[UIImage imageNamed:@"icon.png"]

shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToWechatSession,UMShareToQQ,nil]

delegate:self];

形参名 含义
controller 分享列表页面所在的UIViewController对象
appKey 友盟appKey,如果你在其他地方用UMSocialData设置了appKey,这里也可以传nil
shareText 分享编辑页面的内嵌文字
shareImage 分享编辑页面的内嵌图片,用户可以在编辑页面中删除。如果你不需要分享图片,可以传入nil
shareToSnsNames 定义列表出现的微博平台字符串构成的数组,字符变量名为UMShareToSina、UMShareToTencent、UMShareToWechatSession、UMShareToWechatTimeline、UMShareToQzone、UMShareToQQ、UMShareToRenren、UMShareToDouban、UMShareToEmail、UMShareToSms、UMShareToFacebook、UMShareToTwitter,分别代表新浪微博、腾讯微博、微信好友、微信朋友圈、QQ空间、手机QQ、人人网、豆瓣、电子邮箱、短信、Facebook、Twitter
delegate 实现分享状态回调方法的对象,回调方法的实现可以参见分享详细说明的回调方法部分。如果你不需要回调的话,可以设为nil

2.点击微信分享,弹框说微信未安装(实际已经安装了)

1).HTTP传输安全

A、在info.plist中加入安全域名白名单(右键info.plist用source code打开)

<key>NSAppTransportSecurity</key>

<dict>

<key>NSExceptionDomains</key>

<dict>

<key>log.umsns.com</key>

<dict> <key>NSIncludesSubdomains</key>

<true/>

<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>

<true/>

<key>NSTemporaryExceptionMinimumTLSVersion</key>

<string>TLSv1.1</string>

</dict>

<key>sns.whalecloud.com</key>

<dict>

<key>NSIncludesSubdomains</key>

<true/>

<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>

<true/>

<key>NSTemporaryExceptionMinimumTLSVersion</key>

<string>TLSv1.1</string>

</dict>

<!-- 集成QQ授权对应的HTTP白名单-->

<key>qq.com</key>

<dict>

<key>NSIncludesSubdomains</key>

<true/>

<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>

<true/>

<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>

<false/>

</dict>

 B、在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

2).应用跳转(SSO等)

如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,

否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。
同样在info.plist增加

<key>LSApplicationQueriesSchemes</key>

<array>

<!-- 微信 URL Scheme 白名单-->

<string>wechat</string>

<string>weixin</string>

</array>

参考:http://dev.umeng.com/social/ios/ios9

3.分享的数据信息没有带过去问题

[[ShareEngine sharedInstance] sendWeChatMessage:nil

url:momentUrl

shareType:SHARE_ENGINE_FRIEND

titleString:titleString

description:nil

thubnilImage:scaleImage];

- (void)sendWeChatMessage:(NSString*)message

url:(NSString*)url

shareType:(int)shareType

titleString:(NSString *)strTitle

description:(NSString *)description

thubnilImage:(UIImage *)thubnilImage

{

switch (shareType)

{

case SHARE_ENGINE_FRIEND:  // 好友

{

SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];

req.bText = NO;

// 发送媒体消息给微信

WXMediaMessage *mediaMessage = [WXMediaMessage message];

mediaMessage.title = strTitle;

mediaMessage.description = SHARE_WECHAT_CONTENT;

if (thubnilImage) {

[mediaMessage setThumbImage: thubnilImage];

}

else

{

[mediaMessage setThumbImage: [UIImage imageNamed:@"icon_logo"]];

}

WXWebpageObject *ext = [WXWebpageObject object];

ext.webpageUrl = url;

mediaMessage.mediaObject = ext;

req.message = mediaMessage;

req.scene = SHARE_ENGINE_FRIEND;

[WXApi sendReq:req];

}

break;

case SHARE_ENGINE_FRIEND_CIRCLE:  // 好友圈

{

SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];

req.bText = NO;

// 发送媒体消息给微信

WXMediaMessage *mediaMessage = [WXMediaMessage message];

mediaMessage.title = strTitle;

mediaMessage.description = description;

[mediaMessage setThumbImage: thubnilImage];

WXWebpageObject *ext = [WXWebpageObject object];

ext.webpageUrl = url;

mediaMessage.mediaObject = ext;

req.message = mediaMessage;

req.scene = SHARE_ENGINE_FRIEND_CIRCLE;

[WXApi sendReq:req];

}

break;

default:

break;

}

}

4.修改分享面板上的文字和图片

UMSocialSnsPlatform *wenxinCirclePlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatTimeline];

wenxinCirclePlatform.bigImageName = @"icon_share_friend_circle";

wenxinCirclePlatform.displayName = @"朋友圈";

wenxinCirclePlatform.snsClickHandler = ^(UIViewController *presentingController, UMSocialControllerService * socialControllerService, BOOL isPresentInController){

NSLog(@"点击微信朋友圈的响应");

[[ShareEngine sharedInstance] sendWeChatMessage:nil

url:momentUrl

shareType:SHARE_ENGINE_FRIEND_CIRCLE

titleString:titleString

description:nil

thubnilImage:scaleImage];

};

时间: 2024-10-14 00:20:27

IOS 友盟分享功能相关问题的相关文章

iOS 友盟分享

博文一 1.集成友盟分享,需要先注册一个友盟账号,注册地址 友盟开发者平台官网  友盟集成文档 友盟sdk下载地址友盟sdk下载地址 2,成功下载sdk集成后,微信分享需要配置一下 新浪微博 之类到同样配置就行 3.整合完之后就开始上代码了 ShareManage.h [objc] view plaincopy // //  ShareManage.h //  KONKA_MARKET // //  Created by wxxu on 14/12/18. //  Copyright (c) 2

iOS友盟分享--集成Facebook官方SDK

一直用的友盟分享,最近客户提了个新需求要求可以分享到Facebook  想到友盟就有FB分享 万分激动啊.. 但是测试后发现 友盟的Facebook 两种都存在一定问题.. 第一种   使用系统自带Facebook需要先在手机上设置Facebook账号 优点:这种分享简单 不需要配置Facebook AppID 缺点:继承了系统Facebook 不能预填写分享内容的特点(一般的app分享内容是要预填写的  怎么着也得王婆卖瓜对不对..所以这个缺点很致命); 第二种:使用应用内网页分享 (这种分享

基于最新友盟开发文档,集成友盟分享功能,赋demo

集成准备 获取Appkey 快速集成 获取SDK,页面截图: 下载后打开 导入jar和res 添加回调Activity 微信 在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity. QQ QQ不需要添加Activity,但需要在使用QQ分享或者授权的Activity中,添加: @Override protected void onActivityResult(int requestCode, int resultC

iOS开发-友盟分享(3)

iOS 友盟分享 这个主要是提到如何通过友盟去自定义分享的步骤: 一.肯定要去友盟官网下载最新的SDK包,然后将SDK导入到你的工程文件夹里面去: 二.注册友盟账号,将你的APP添加到你的账号里面然后获取到一个Key; 三.  在AppDelegate内设置友盟AppKey -(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [UM

phoneGap在iOS上的简单使用:自定义实现友盟分享插件

说明:本插件仅针对个人当前项目,参照支付宝支付插件类进行开发,不保证对任何项目都具有通用性,代码仅供参考. 找到项目中的config.xml文件,在相似位置插入如下代码: <feature name="UM_SharePlugin"> <param name="ios-package" value="UM_SharePlugin"/> </feature> 具体插件类代码如下: // // UM_SharePl

iOS 友盟统计怎么用

本文转载至 http://blog.csdn.net/woaifen3344/article/details/41284395 友盟统计UMAnalyticsiOS友盟统计iOS UMAnalytics 项目中使用友盟统计功能是非常方便的,首先得先到友盟开放平台去看看文档,话不多说,正在就把我写的一个demo 送给有需要的朋友,这里我封装了友盟统计的功能,只需要导入这个类,就可以很方便的使用: [objc] view plaincopyprint? // //  HYBUMAnalyticsHe

IOS友盟 社会化分享 &gt; 社会化iOS组件 &gt; 分享集成

由于苹果审核政策需求,建议大家对未安装客户端平台进行隐藏,在设置QQ.微信AppID之后调用下面的方法,[UMSocialConfig hiddenNotInstallPlatforms:@[UMShareToQQ, UMShareToQzone, UMShareToWechatSession, UMShareToWechatTimeline]]; 这个接口只对默认分享面板平台有隐藏功能,自定义分享面板或登录按钮需要自己处理 友盟分享sdk5.2.1已经兼容ipv6,请大家升级sdk,避免无法通

IOS百度地图使用基础指南+原生分享&友盟分享

1.地图 1.获取用户的经纬度(CLLocationManager) 创建属性:CLLocationManager *mgr; 遵守协议:<CLLocationManagerDelegate> a>创建定位管理器 self.mgr = [[CLLocationManager alloc] init]; b>设置代理 self.mgr.delegate = self; c>开始定位 [self.mgr startUpdatingLocation]; 代理方法: -(void)l

iOS之友盟分享

http://dev.umeng.com/social/ios/share/quick-integration 注意:苹果审核政策需求,建议对未安装的客户端平台进行隐藏,在设置QQ.微信Appid之后调用方法: [UMSocialConfig hiddenNotInstallPlatforms:@[UMShareToQQ, UMShareToQzone, UMShareToWechatSession, UMShareToWechatTimeline]]; 这个接口只对默认分享平面平台有隐藏功能,