你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> Cocos2d-x 添加iOS7默認分享/AirDrop

Cocos2d-x 添加iOS7默認分享/AirDrop

編輯:IOS開發綜合

 

/

 

下午添加分享的時候,看著這麼多第三方sdk,我還是喜歡ios7默認的分享功能,簡潔大方。它也能顯示你已安裝的社交app。



下面我說下如何在cocos2dx裡面使用。


下面是封裝好的IOSShareManager.h/m ,這個是一個oc單例類,負責調用分享和保存rootViewController。代碼很少,看注釋就可以了明白了。


IOSShareManager.h

 

 

//
//  IOSShareManager.h
//  IOS7ShareSample
//
//  Created by LiuYanghui on 14-3-22.
//
//

#import 
#import 

@interface IOSShareManager : NSObject

+ (IOSShareManager *) getInstance;
- (void)share:(CGPoint)pos;

@property (nonatomic, readwrite, retain) id viewController;

@end


 

IOSShareManager.m

 

//
//  IOSShareManager.m
//  IOS7ShareSample
//
//  Created by LiuYanghui on 14-3-22.
//
//

#import IOSShareManager.h

@interface IOSShareManager()
@property (strong, nonatomic) UIPopoverController *activityPopover;
@end

@implementation IOSShareManager

+ (IOSShareManager *) getInstance
{
    static IOSShareManager* gameMgr = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        gameMgr = [[self alloc] init];
    });
    return gameMgr;
}

- (void)share:(CGPoint)pos
{
    // 你可以先截屏保存到document下,這裡的image讀取document下面。
    UIImage *image = [UIImage imageNamed:@HelloWorld.png];
    NSString *mesg = @You can add some description info here!;

    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[image, mesg] applicationActivities:nil];

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        //iPhone 從底部向上滑出view
        [self.viewController presentViewController:activityViewController animated:YES completion:nil];
    } else {
        //iPad, 彈出view
        if (![self.activityPopover isPopoverVisible]) {
            self.activityPopover = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
            [self.activityPopover presentPopoverFromRect:CGRectMake(pos.x, pos.y, 0, 0) inView:((UIViewController *)self.viewController).view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
        } else {
            //Dismiss view,當重復點擊時
            [self.activityPopover dismissPopoverAnimated:YES];
        }
    }
}

- (id)init
{
    self = [super init];
    if (self) {
        // init code here

    }
    return self;
}

- (void) dealloc
{
    [super dealloc];
}

@end

上面的是oc的類,下面添加中間層接口,供cpp調用。IOSShare.h/mm 就是我們需要添加的中間層類方法。


IOSShare.h

 

 

//
//  IOSShare.h
//  IOS7ShareSample
//
//  Created by LiuYanghui on 14-3-22.
//
//

#ifndef __IOS7ShareSample__IOSShare__
#define __IOS7ShareSample__IOSShare__

class IOSShare {
public:

/*! @brief share
 *
 * 顯示分享view,如果是ipad,則從設置位置彈出view
 * @param posX
 * @param posY
 */
    static void share(float posX, float posY);
};

#endif /* defined(__IOS7ShareSample__IOSShare__) */


 

IOSShare.mm

 

//
//  IOSShare.cpp
//  IOS7ShareSample
//
//  Created by LiuYanghui on 14-3-22.
//
//

#include IOSShare.h
#import IOSShareManager.h

void IOSShare::share(float posX, float posY)
{
    [[IOSShareManager getInstance] share:CGPointMake(posX, posY)];
}

ok,下面就是如何使用。


第一步:設置IOSShareManager 的rootViewController。
請在AppController.mm,添加:#import “IOSShareManager.h”, 並在下面函數中設置IOSShareManager 的rootViewController

 

 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
    // ....
    [[IOSShareManager getInstance] setViewController:viewController];
}

第二步:cpp中調用分享,參數坐標當在ipad下的時候,以該坐標為彈出點,彈出分享視圖。

 

IOSShare::share(300, 300);

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved