zoukankan      html  css  js  c++  java
  • iOS 友盟分享

    博文一

    1.集成友盟分享,需要先注册一个友盟账号,注册地址

    友盟开发者平台官网  友盟集成文档  

    友盟sdk下载地址友盟sdk下载地址

    2,成功下载sdk集成后,微信分享需要配置一下

    新浪微博 之类到同样配置就行

    3.整合完之后就开始上代码了

    ShareManage.h

     

     

    1. //  
    2. //  ShareManage.h  
    3. //  KONKA_MARKET  
    4. //  
    5. //  Created by wxxu on 14/12/18.  
    6. //  Copyright (c) 2014年 archon. All rights reserved.  
    7. //  分享管理  
    8.   
    9. // 友盟APIKey  
    10. #define UMeng_APIKey        @""//友盟appKey  
    11. #define WX_APP_KEY @""//微信appId  
    12. #define WX_APP_SECRET @""//微信appSecret  
    13. #define share_title @""//分享标题  
    14. #define share_content @""//分享内容  
    15. #define share_url @""//分享url  
    16. #import <Foundation/Foundation.h>  
    17. #import <MessageUI/MessageUI.h>  
    18. @interface ShareManage : NSObject <MFMessageComposeViewControllerDelegate>  
    19. + (ShareManage *)shareManage;- (void)shareConfig;/**微信分享**/  
    20. - (void)wxShareWithViewControll:(UIViewController *)viewC;/**新浪微博分享**/- (void)wbShareWithViewControll:(UIViewController *)viewC;/**微信朋友圈分享**/- (void)wxpyqShareWithViewControll:(UIViewController *)viewC;/**短信分享**/- (void)smsShareWithViewControll:(UIViewController *)viewC;@end  



    ShareManage.m

    1. //  
    2. //  ShareManage.m  
    3. //  KONKA_MARKET  
    4. //  
    5. //  Created by wxxu on 14/12/18.  
    6. //  Copyright (c) 2014年 archon. All rights reserved.  
    7. //  分享管理  
    8.   
    9. #import "ShareManage.h"  
    10. #import "UMSocial.h"  
    11. #import "UMSocialWechatHandler.h"  
    12. #import "WXApi.h"  
    13.   
    14. @implementation ShareManage {  
    15.     UIViewController *_viewC;  
    16. }  
    17.   
    18. static ShareManage *shareManage;  
    19.   
    20. + (ShareManage *)shareManage  
    21. {  
    22.     @synchronized(self)  
    23.     {  
    24.         if (shareManage == nil) {  
    25.             shareManage = [[self alloc] init];  
    26.         }  
    27.         return shareManage;  
    28.     }  
    29. }  
    30.   
    31. #pragma mark 注册友盟分享微信  
    32. - (void)shareConfig  
    33. {  
    34.     //设置友盟社会化组件appkey  
    35.     [UMSocialData setAppKey:UMeng_APIKey];  
    36.     [UMSocialData openLog:YES];  
    37.       
    38.     //注册微信  
    39.     [WXApi registerApp:WX_APP_KEY];  
    40.     //设置图文分享  
    41.     [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeWeb;  
    42. }  
    43.   
    44. #pragma mark 微信分享  
    45. - (void)wxShareWithViewControll:(UIViewController *)viewC  
    46. {  
    47.     _viewC = viewC;  
    48.     [[UMSocialControllerService defaultControllerService] setShareText:share_content shareImage:nil socialUIDelegate:nil];  
    49.       
    50.     [UMSocialWechatHandler setWXAppId:WX_APP_KEY appSecret:WX_APP_SECRET url:share_url];  
    51.     [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatSession].snsClickHandler(viewC,[UMSocialControllerService defaultControllerService],YES);  
    52. }  
    53.   
    54. #pragma mark 新浪微博分享  
    55. - (void)wbShareWithViewControll:(UIViewController *)viewC  
    56. {  
    57.     _viewC = viewC;  
    58.     [[UMSocialControllerService defaultControllerService] setShareText:share_content shareImage:nil socialUIDelegate:nil];  
    59.     [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].snsClickHandler(viewC,[UMSocialControllerService defaultControllerService],YES);  
    60. }  
    61.   
    62. #pragma mark 微信朋友圈分享  
    63. - (void)wxpyqShareWithViewControll:(UIViewController *)viewC  
    64. {  
    65.     _viewC = viewC;  
    66.     [[UMSocialControllerService defaultControllerService] setShareText:share_content shareImage:nil socialUIDelegate:nil];  
    67.     [UMSocialWechatHandler setWXAppId:WX_APP_KEY appSecret:WX_APP_SECRET url:share_url];  
    68.     [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatTimeline].snsClickHandler(viewC,[UMSocialControllerService defaultControllerService],YES);  
    69. }  
    70.   
    71. #pragma mark 短信分享  
    72. - (void)smsShareWithViewControll:(UIViewController *)viewC  
    73. {  
    74.     _viewC = viewC;  
    75.     Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));  
    76.     if (messageClass != nil) {  
    77.         if ([messageClass canSendText]) {  
    78.             [self displaySMSComposerSheet];  
    79.         }  
    80.         else {  
    81.             //@"设备没有短信功能"  
    82.         }  
    83.     }  
    84.     else {  
    85.         //@"iOS版本过低,iOS4.0以上才支持程序内发送短信"  
    86.     }  
    87. }  
    88.   
    89. #pragma mark 短信的代理方法  
    90. - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{  
    91.     [_viewC dismissViewControllerAnimated:YES completion:nil];  
    92.     switch (result)  
    93.     {  
    94.         case MessageComposeResultCancelled:  
    95.               
    96.             break;  
    97.         case MessageComposeResultSent:  
    98.             //@"感谢您的分享!"  
    99.             break;  
    100.         case MessageComposeResultFailed:  
    101.               
    102.             break;  
    103.         default:  
    104.             break;  
    105.     }  
    106. }  
    107.   
    108. - (void)displaySMSComposerSheet  
    109. {  
    110.     MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];  
    111.     picker.messageComposeDelegate = self;  
    112.     picker.navigationBar.tintColor = [UIColor blackColor];  
    113.     //    picker.recipients = [NSArray arrayWithObject:@"10086"];  
    114.     picker.body = share_content;  
    115.     [_viewC presentViewController:picker animated:YES completion:nil];  
    116. }  
    117. @end  
      1.   

    博文二

       之前使用过,shareSDK。到了新公司,新公司使用友盟。

          友盟的挺简单的。特分享几个注意点

    0、后来想到的,微博和友盟的绑定

    友盟的使用是很简单,但是,友盟的网站好难用,有木有!!!啥思路

    接着,吐槽。添加了一个新的应用,居然,在我的应用里找不到!但是,在这

    可以找到,不过,第二天,就在我的应用找到了。

    神逻辑呀!

    1、QQ空间的分享。之前老是报错

    1. 2014-09-18 09:52:00.030 友盟快速[239:60b] 分享到QQ空间必须设置图片+文字消息  
    2. 2014-09-18:09:52:00:034 -QQAPI- QQApi.m:300 param error:qzone not support type  


    在真机上的错误是,无法打开手机QQ。因为,分享到qq好友,可以,所以肯定不是无法打开手机QQ。

    在网上找了许多,都没有直接说明这个问题的。给客服反映,客服木有反应(这点不如,shareSDK)。

    一个半小时,有木有。问题。我早就解决了!

    后来,看到,有个开发者说到,图片和文字为什么不能一起分享,题目和文字怎么分开。我想,是不是我分享的文字的原因,我只是写了“这是要分享的文字”。于是随手添加了N多无聊的文字。可以分享了。

    2、QQ好友分享。只有链接

    这个就是因为,你分享了图片。如果去掉图片,可以看到文字了。

    3、设置QQ各种title

    支持title设置的平台:QQ、QQ空间、微信、微信朋友圈

    1. QQtitle设置方法:  
    2. [UMSocialData defaultData].extConfig.qqData.title = @"QQtitle";  
    3. QQ空间title设置方法:  
    4. [UMSocialData defaultData].extConfig.qzoneData.title = @"Qzonetitle";  
    5. 微信title设置方法:  
    6. [UMSocialData defaultData].extConfig.wechatSessionData.title = @"微信title";  
    7. 朋友圈title设置方法:  
    8. [UMSocialData defaultData].extConfig.wechatTimelineData.title = @"朋友圈title";  

    4、关于QQ类,无法返回(不包括微信)

    如果,你查看网页,给出的答案是,设置scheme。但是这样还是不行。其实,只要你去友盟的后台绑定一下,QQ空间APPkey绑定就可以类。十六进制那个。

    最后,给大家个绝招。

    如果,你某个功能实现不了。

    使用友盟的账号试试。其实,直接用它的就好。

    我有个功能实现不了,调试了一下午都不行。最后,用都绝招成功。只能说,这个账号不对。

    做这个功能,主要是账号申请费劲,还不一定对,所以,绝招一定要用的!

  • 相关阅读:
    Mybaits 的优点
    mybatis中#{}和${}的区别
    springmvc工作流程
    request对象的主要方法有哪些
    如何决定选用HashMap还是TreeMap?
    队列和栈是什么,列出它们的区别?
    fail-fast与fail-safe有什么区别?
    Collections类是什么?
    哪些集合类提供对元素的随机访问?
    可以作为GC Roots的对象包括哪些
  • 原文地址:https://www.cnblogs.com/hanzhuzi/p/4257286.html
Copyright © 2011-2022 走看看