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

本文档介绍如何集成摇一摇截屏分享功能,包括不同应用场景下的具体实现方法,如普通应用、Cocos2d游戏及使用MediaPlayer的应用等。同时提供摇一摇灵敏度设置及技术支持信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


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,我们会尽快回复您。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值