摇一摇截屏相关功能 -- 集成文档

来源:互联网 发布:js除于10等于整数 编辑:程序博客网 时间:2024/06/05 00:29

摇一摇截屏相关功能 -- 集成文档

  • 1.添加摇一摇截屏分享所需的依赖
  • 2.摇一摇相关各种功能,请按需集成
    • 2.1 摇一摇截图分享
      • 2.1.1 注册监听摇一摇事件
      • 2.1.2 普通应用程序
      • 2.1.3 使用Cocos2d的游戏
      • 2.1.4 使用MediaPlayer播放视频的应用
      • 2.1.5 其他使用场景
      • 2.1.6 效果图
    • 2.2 摇一摇打开分享面板
    • 2.3 注销摇一摇监听
    • 2.4 摇一摇接口
    • 2.5 屏幕截图接口
    • 2.6 截图后分享
    • 2.7 摇一摇灵敏度设置
  • 3.技术支持

1 添加摇一摇截屏分享所需的依赖

我们将摇一摇的资源放到UMSocial_Sdk_Extra_Frameworks/UMSocial_Shake_Sdk和UMSocial_Sdk_Extra_Frameworks/UMSocial_ScreenShot_Sdk这两个文件夹下,包括:

  • UMSocial_Shake_Sdk下的libUMSocial_Sdk_Shake_x.x.a和UMSocial_ScreenShot_Sdk下的libUMSocial_Sdk_ScreenShot_x.x.a,分别表示摇一摇的sensor和截屏工具库;

  • 注意:使用截屏SDK,需要添加OpenGLES.framework和MediaPlayer.framework。添加方法:选你的target->Build Phases->Link Binary With Libraries->添加OpenGLES.framework、MediaPlayer.framework。

请按您需要的功能模块添加分享组件,资源包。

功能需集成分享组件需libUMSocial_Sdk_Shake.a需libUMSocial_Sdk_ScreenShot.a摇一摇截屏分享是是是摇一摇打开分享面板是是 直接截屏  是截屏-分享是 是

2 摇一摇相关各种功能,请按需集成

2.1 摇一摇截图分享

2.1.1 注册监听摇一摇事件,默认摇一摇后,自动截屏并弹出分享页面

/** 设置响应摇一摇事件,并且弹出分享页面 @param snsTypes 要分享的平台类型名,例如@[UMShareToSina,UMShareToTencent,UMShareToWechatSession] @param shareText 分享内嵌文字 @param screenShoter 摇一摇分享用到的截屏对象 @param controller  出现分享界面所在的ViewController @param delegate 实现摇一摇后,或者分享完成后的回调对象,如果不处理这些事件,可以设置为nil */+(void)setShakeToShareWithTypes:(NSArray *)snsTypes                      shareText:(NSString *)shareText                   screenShoter:(UMSocialScreenShoter *)screenShoter               inViewController:(UIViewController *)controller                       delegate:(id<UMSocialShakeDelegate>)delegate;

2.1.2 普通应用注册摇一摇截图分享

[UMSocialScreenShoterDefault screenShoter]为普通应用的截屏适配器,负责截屏操作,示例代码如下:

  [UMSocialShakeService setShakeToShareWithTypes:@[UMShareToSina,UMShareToWechatSession]                                         shareText:@"你的分享文字"                                      screenShoter:[UMSocialScreenShoterDefault screenShoter]                                  inViewController:self                                          delegate:nil];  

注意在离开此视图时解除监听摇一摇事件

2.1.3 使用Cocos2d开发的游戏注册摇一摇截图分享

[UMSocialScreenShoterCocos2d screenShoterFromEaglView:[CCDirector sharedDirector].view]为cocos2d游戏的截屏适配器,负责截屏操作,示例代码如下:

   AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];   [UMSocialShakeService setShakeToShareWithTypes:@[UMShareToSina,UMShareToTencent,UMShareToWechatSession] shareText:@"test" screenShoter:[UMSocialScreenShoterCocos2d screenShoterFromEaglView:[CCDirector sharedDirector].view] inViewController:[app navController] delegate:nil];

注意在离开此视图时解除监听摇一摇事件

2.1.4 使用MediaPlayer播放视频的应用实现摇一摇截图分享

如果使用iOS系统的MediaPlayer播放器,播放本地视频,可以用下面的方式得到截图分享。

//player为你当前的'MPMoviePlayerController'播放器对象[UMSocialShakeService setShakeToShareWithTypes:@[UMShareToSina,UMShareToWechatSession]                                         shareText:@"你的分享文字"                                      screenShoter:[UMSocialScreenShoterMediaPlayer screenShoterFromMoviePlayer:player]                                  inViewController:self                                          delegate:nil]; 

若需要截取流媒体图像,则需开发者自行获取到视频图像,并且通过自定义截图适配器的方式将图像返回.
注意在离开此视图时解除监听摇一摇事件

2.1.5 其他使用场景实现摇一摇截图分享

设置响应摇一摇回调,并在回调中设置截图,示例代码如下:

-(UMSocialShakeConfig)didShakeWithShakeConfig{    //相应摇一摇后,你可以用自己的播放器得到截图    [UMSocialShakeService setScreenShotImage:[UIImage imageNamed:@"UMS_social_demo"]];    return UMSocialShakeConfigDefault;}//下面注册响应摇一摇动作  [UMSocialShakeService setShakeToShareWithTypes:@[UMShareToSina,UMShareToTencent,UMShareToWechatSession,UMShareToWechatTimeline]                                         shareText:shareText                                      screenShoter:nil                                  inViewController:self                                          delegate:self];  

注意在离开此视图时解除监听摇一摇事件

2.1.6 摇一摇截图分享效果图

2.2 摇一摇打开分享面板

使用上面的方法摇一摇功能后,用户可以需要摇一摇手机,即可打开友盟的分享面板,不需要用户点击相关的按钮调出分享面板,用户体验较好。 示例代码如下:

  [UMSocialShakeService setShakeToShareWithTypes:nil                                         shareText:nil                                      screenShoter:nil                                  inViewController:self                                          delegate:self];  //在摇一摇的回调方法弹出分享面板                                          -(UMSocialShakeConfig)didShakeWithShakeConfig{    [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:@"你的分享文字" shareImage:shareImage shareToSnsNames:@[UMShareToSina,UMShareToTencent,UMShareToWechatSession,UMShareToWechatTimeline] delegate:nil];//下面返回值控制是否显示分享编辑页面、是否显示截图、是否有音效,UMSocialShakeConfigNone表示都不显示    return UMSocialShakeConfigNone;}

2.3 注销摇一摇监听

不需要响应摇一摇动作调用如下代码:

   [UMSocialShakeService unShakeToSns];

2.4 摇一摇接口

若使用摇一摇功能,直接使用iOS系统提供的监听摇一摇事件回调,你可以在当前ViewController视图控制器中使用下面的代码:

-(BOOL)canBecomeFirstResponder {    return YES;}-(void)viewDidAppear:(BOOL)animated {    [super viewDidAppear:animated];    //设置第一响应者    [self becomeFirstResponder];}//在响应摇一摇动作方法内得到屏幕截图-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent*)event{    if(motion == UIEventSubtypeMotionShake)    {        //下面使用应用类型截屏,如果是cocos2d游戏或者其他类型,使用相应的截屏对象        //UIImage *image = [[UMSocialScreenShoterDefault screenShoter] getScreenShot];    }}

2.5 屏幕截图接口

该功能为直接截取用户的屏幕图像,要使用该功能需要将UMSocial_ScreenShot_Sdk文件夹下的库文件和头文件添加到工程中,示例如下:

//下面是应用类型的截图,如果是游戏或者其他方式截图,请参考2.1.4 和2.1.5     UIImage *image = [[UMSocialScreenShoterDefault screenShoter] getScreenShot];

2.6 截图后分享

该功能是在用户打开分享面板时,将要分享的图像内容替换为当前应用截图,要使用该功能需要将 UMSocial_ScreenShot_Sdk文件夹添加到工程的中,示例如下:

    UIImage *image = [[UMSocialScreenShoterDefault screenShoter] getScreenShot];    [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:@"分享文字" shareImage:image shareToSnsNames:nil delegate:nil];

2.7 摇一摇灵敏度设置

可根据应用类型灵活设置响应摇一摇事件的灵敏度,示例如下:
    //可以设置响应摇一摇阈值,数值越低越灵敏,默认是0.8    [UMSocialShakeService setShakeThreshold:1.5];

3 技术支持

请发邮件至social-support@umeng.com。如果您出现的问题和SDK相关,请说明您使用的是iOS的SDK,我们会尽快回复您。

0 0