zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

iOS开发-友盟分享(1)详解手机开发

ios手机开发 详解 分享 友盟
2023-06-13 09:20:15 时间

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

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

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

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

iOS开发-友盟分享(1)详解手机开发

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

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

 

ShareManage.h

 

 


// Created by wxxu on 14/12/18.  // Copyright (c) 2014年 archon. All rights reserved.  // 分享管理    // 友盟APIKey  #define UMeng_APIKey @ //友盟appKey  #define WX_APP_KEY @ //微信appId  #define WX_APP_SECRET @ //微信appSecret  #define share_title @ //分享标题  #define share_content @ //分享内容  #define share_url @ //分享url  #import  Foundation/Foundation.h   #import  MessageUI/MessageUI.h   @interface ShareManage : NSObject  MFMessageComposeViewControllerDelegate   + (ShareManage *)shareManage;- (void)shareConfig;/**微信分享**/   (void)wxShareWithViewControll:(UIViewController *)viewC;/**新浪微博分享**/- (void)wbShareWithViewControll:(UIViewController *)viewC;/**微信朋友圈分享**/- (void)wxpyqShareWithViewControll:(UIViewController *)viewC;/**短信分享**/- (void)smsShareWithViewControll:(UIViewController *)viewC;@end 
// Created by wxxu on 14/12/18.  // Copyright (c) 2014年 archon. All rights reserved.  // 分享管理    #import  ShareManage.h   #import  UMSocial.h   #import  UMSocialWechatHandler.h   #import  WXApi.h     @implementation ShareManage {   UIViewController *_viewC;  }    static ShareManage *shareManage;    + (ShareManage *)shareManage  {   @synchronized(self)   {   if (shareManage == nil) {   shareManage = [[self alloc] init];   }   return shareManage;   }  }    #pragma mark 注册友盟分享微信   (void)shareConfig  {   //设置友盟社会化组件appkey   [UMSocialData setAppKey:UMeng_APIKey];   [UMSocialData openLog:YES];     //注册微信   [WXApi registerApp:WX_APP_KEY];   //设置图文分享   [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeWeb;  }    #pragma mark 微信分享   (void)wxShareWithViewControll:(UIViewController *)viewC  {   _viewC = viewC;   [[UMSocialControllerService defaultControllerService] setShareText:share_content shareImage:nil socialUIDelegate:nil];     [UMSocialWechatHandler setWXAppId:WX_APP_KEY appSecret:WX_APP_SECRET url:share_url];   [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatSession].snsClickHandler(viewC,[UMSocialControllerService defaultControllerService],YES);  }    #pragma mark 新浪微博分享   (void)wbShareWithViewControll:(UIViewController *)viewC  {   _viewC = viewC;   [[UMSocialControllerService defaultControllerService] setShareText:share_content shareImage:nil socialUIDelegate:nil];   [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].snsClickHandler(viewC,[UMSocialControllerService defaultControllerService],YES);  }    #pragma mark 微信朋友圈分享   (void)wxpyqShareWithViewControll:(UIViewController *)viewC  {   _viewC = viewC;   [[UMSocialControllerService defaultControllerService] setShareText:share_content shareImage:nil socialUIDelegate:nil];   [UMSocialWechatHandler setWXAppId:WX_APP_KEY appSecret:WX_APP_SECRET url:share_url];   [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatTimeline].snsClickHandler(viewC,[UMSocialControllerService defaultControllerService],YES);  }    #pragma mark 短信分享   (void)smsShareWithViewControll:(UIViewController *)viewC  {   _viewC = viewC;   Class messageClass = (NSClassFromString(@ MFMessageComposeViewController ));   if (messageClass != nil) {   if ([messageClass canSendText]) {   [self displaySMSComposerSheet];   }   else {   //@ 设备没有短信功能    }   }   else {   //@ iOS版本过低,iOS4.0以上才支持程序内发送短信    }  }    #pragma mark 短信的代理方法   (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{   [_viewC dismissViewControllerAnimated:YES completion:nil];   switch (result)   {   case MessageComposeResultCancelled:     break;   case MessageComposeResultSent:   //@ 感谢您的分享!    break;   case MessageComposeResultFailed:     break;   default:   break;   }  }     (void)displaySMSComposerSheet  {   MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];   picker.messageComposeDelegate = self;   picker.navigationBar.tintColor = [UIColor blackColor];   // picker.recipients = [NSArray arrayWithObject:@ 10086 ];   picker.body = share_content;   [_viewC presentViewController:picker animated:YES completion:nil];  }  @end 

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

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

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

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

iOS开发-友盟分享(1)详解手机开发

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

iOS开发-友盟分享(1)详解手机开发

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

神逻辑呀!

 

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

 


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

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

 

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

iOS开发-友盟分享(1)详解手机开发iOS开发-友盟分享(1)详解手机开发

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

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

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

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

3、设置QQ各种title

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


QQtitle设置方法:  [UMSocialData defaultData].extConfig.qqData.title = @ QQtitle   QQ空间title设置方法:  [UMSocialData defaultData].extConfig.qzoneData.title = @ Qzonetitle   微信title设置方法:  [UMSocialData defaultData].extConfig.wechatSessionData.title = @ 微信title   朋友圈title设置方法:  [UMSocialData defaultData].extConfig.wechatTimelineData.title = @ 朋友圈title  

 

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

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

 

最后,给大家个绝招。

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

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

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

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

6090.html

app程序应用开发手机开发无线开发移动端开发