chicken_dy/Assets/Plugins/Ios/NativeTool/NativeTool.m

100 lines
3.0 KiB
Objective-C

//
// UUIDManager.m
// Unity-iPhone
//
// Created by fotoable on 2020/6/29.
//
#import<AudioToolbox/AudioToolbox.h>
#import "NativeTool.h"
//#import "JKRBDMuteSwitch/RBDMuteSwitch.h"
@implementation NativeTool
BoolResultDel resultDel;
static NativeTool *mInstance;
+(NativeTool *)getInstance
{
if (mInstance == nil)
{
mInstance = [[NativeTool alloc] init];
}
return mInstance;
}
-(void)shake:(int)pType Intensity:(float)pIntensity
{
UIImpactFeedbackStyle tStyle = UIImpactFeedbackStyleLight;
if(pType == 1)
{
tStyle = UIImpactFeedbackStyleMedium;
}
else if(pType == 2)
{
tStyle = UIImpactFeedbackStyleHeavy;
}
UIImpactFeedbackGenerator *generator = [[UIImpactFeedbackGenerator alloc] initWithStyle:tStyle];
if (@available(iOS 13.0, *))
{
[generator impactOccurredWithIntensity:pIntensity];
}
else
{
[generator impactOccurred];
}
}
-(void)shareWithTitle:(NSString *)pTitle Url:(NSString *)pUrl ResultCallback:(nonnull BoolResultDel)pResultDel
{
NSMutableArray *sharingItems = [NSMutableArray new];
if (pTitle && pTitle.length > 0)
{
[sharingItems addObject:pTitle];
}
// if (imageDataString && imageDataString.length > 0)
// {
// NSData *imageData = [[NSData alloc] initWithBase64EncodedString:imageDataString options:0];
// UIImage *image = [[UIImage alloc] initWithData:imageData];
//
// [sharingItems addObject:image];
// }
if (pUrl && pUrl.length > 0)
{
NSURL *shareUrl = [NSURL URLWithString:pUrl];
[sharingItems addObject:shareUrl];
}
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
activityViewController.popoverPresentationController.sourceView = UnityGetGLViewController().view;
activityViewController.popoverPresentationController.sourceRect = CGRectMake(UnityGetGLViewController().view.frame.size.width/2, UnityGetGLViewController().view.frame.size.height/4, 0, 0);
activityViewController.modalInPopover = YES;
//回调
if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0)
{
// ios8.0 之后用此方法回调
UIActivityViewControllerCompletionWithItemsHandler itemsBlock = ^(UIActivityType __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError)
{
if(pResultDel != NULL) pResultDel(completed);
};
activityViewController.completionWithItemsHandler = itemsBlock;
}
else
{
// ios8.0 之前用此方法回调
UIActivityViewControllerCompletionHandler handlerBlock = ^(UIActivityType __nullable activityType, BOOL completed)
{
if(pResultDel != NULL) pResultDel(completed);
};
activityViewController.completionHandler = handlerBlock;
}
[UnityGetGLViewController() presentViewController:activityViewController animated:YES completion:nil];
}
@end