12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811 |
- //
- // UnityAdapter.m
- // Unity-iPhone
- //
- // Created by 蒋龙 on 2019/8/27.
- //
- /*
- 在Unity中需要调用的类中定义以下方法以便调用
- //广告相关函数
- [DllImport("__Internal")]
- private static extern void InitUnityAdSdk(string adUnitsJson, string appAppleId, string umengId);
- */
- #import <UIKit/UIKit.h>
- #import <AdAdmobSDK/AdAdmobSDK.h>
- #ifdef PLATFORM_IOS
- #import "Unity/UnityInterface.h"
- #endif
- #import <Foundation/Foundation.h>
- #define appDelegate ((AppDelegate *)[[UIApplication sharedApplication] delegate])
- #define BundleId [NSBundle mainBundle].bundleIdentifier
- #define kTabBarHeight 50
- #define kDeviceWidth [UIScreen mainScreen].bounds.size.width
- #define KDeviceHeight [UIScreen mainScreen].bounds.size.height
- #define isIOS7 ( [[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending )
- #define isPad (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad)
- #define IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
- //判断iPHoneXr
- #define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
- //判断iPhoneXs
- #define IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
- //判断iPhoneXs Max
- #define IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
- // 是iPhone X 以上的机型
- #define IS_IPHONE_X_UP ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? YES : NO)
- #define jl_weakify(var) __weak typeof(var) weakSelf = var
- #define jl_strongify(var) __strong typeof(var) strongSelf = var
- //iPhoneX系列
- #define Height_StatusBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 44.0 : 20.0)
- #define Height_NavBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 88.0 : 64.0)
- #define Height_TabBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 83.0 : 49.0)
- //固定代码
- #if defined(__cplusplus)
- extern "C"{
- #endif
- // life cycle management
- void UnityPause(int pause);
- void UnitySendMessage(const char* obj, const char* method, const char* msg);
- #if defined(__cplusplus)
- }
- #endif
- #define kUnityObjectName "PottingMobile"
- #define kUnityObjectServicesName "PottingMobileServices"
- @interface AdmobSdkUnityAdapter : NSObject <AdManagerDelegate, ApplePayDelegate, LoginManagerDelegate, UnitlsManagerDelegate, YLApisManagerDelegate, GameCenterManagerDelegate, ToolsManagerDelegate>
- @end
- @implementation AdmobSdkUnityAdapter
- #pragma mark - 广告相关函数
- - (UIViewController *)getRootViewController{
- UIWindow* window = nil;
- if (@available(iOS 13.0, *))
- {
- for (UIWindowScene* windowScene in [UIApplication sharedApplication].connectedScenes)
- {
- if (windowScene.activationState == UISceneActivationStateForegroundActive)
- {
- window = windowScene.windows.firstObject;
- break;
- }
- }
- }else{
- window = [UIApplication sharedApplication].keyWindow;
- }
- NSAssert(window, @"The window is empty");
- return window.rootViewController;
- }
- -(void)isDebug:(BOOL)isdebug {
- [AdManager sharedManager].isDebug = isdebug;
- }
- ///开启定时自动加载广告
- -(void)openAutoLoadAd{
- [[AdManager sharedManager] openAutoLoadAd];
- }
- // SDK中初始化方法
- -(void)initUnityAdSdkWithAdUnitsJson:(const char *)adUnitsJson appAppleId:(const char *)appAppleId umengId:(const char *)umengId appsFlyerKey:(const char *)appsFlyerKey channel:(const char *)channel pangleAppID:(const char *)pangleAppID {
- NSString *adUnitsJsonStr = [self cStrToNSString:adUnitsJson];
- NSString *appAppleIdStr = [self cStrToNSString:appAppleId];
- NSString *umengIdStr = [self cStrToNSString:umengId];
- NSString *appsFlyerKeyStr = [self cStrToNSString:appsFlyerKey];
- NSString *channelStr = [self cStrToNSString:channel];
- NSString *pangleAppIDStr = [self cStrToNSString:pangleAppID];
- // NSLog(@"umengID:%@", umengIdStr);
- // NSLog(@"appsFlyerKey:%@", appsFlyerKeyStr);
-
- [AdManager sharedManager].delegate = self;
- [[AdManager sharedManager] initAdWithAdUnitsJson:adUnitsJsonStr appAppleId:appAppleIdStr umengId:umengIdStr appsFlyerKey:appsFlyerKeyStr channel:channelStr pangleAppID:pangleAppIDStr];
- }
- -(void)setRepeatTimeWithTime:(int)time {
- [AdManager sharedManager].repeatTime = @(time).integerValue;
- }
- -(void)loadAndShowBannerAdWithAdPostion:(const char *)adPostion bannerHeight:(int)bannerH {
- // TopLeft,TopCenter,TopRight,Centered,BottomLeft,BottomCenter,BottomRight
- if (adPostion != nil) {
- float adW = 320;
- float adH = 50;
- if (bannerH == 50 || bannerH == 90 || bannerH == 250 || bannerH == 280) {
- adH = bannerH;
- }
-
- NSString *adPostionStr = [self cStrToNSString:adPostion];
- CGRect frame = CGRectZero;
- if ([adPostionStr isEqualToString:@"TopLeft"]) {
- frame = CGRectMake(0, Height_StatusBar, adW, adH);
- }
- if ([adPostionStr isEqualToString:@"TopCenter"]) {
- frame = CGRectMake((kDeviceWidth-adW) / 2.0, Height_StatusBar, adW, adH);
- }
- if ([adPostionStr isEqualToString:@"TopRight"]) {
- frame = CGRectMake(kDeviceWidth-adW, Height_StatusBar, adW, adH);
- }
- if ([adPostionStr isEqualToString:@"Centered"]) {
- frame = CGRectMake((kDeviceWidth-adW) / 2.0, (KDeviceHeight/2.0 - adH/2.0), adW, adH);
- }
- if ([adPostionStr isEqualToString:@"BottomLeft"]) {
- frame = CGRectMake(0, KDeviceHeight - adH, adW, adH);
- }
- if ([adPostionStr isEqualToString:@"BottomCenter"]) {
- frame = CGRectMake((kDeviceWidth-adW) / 2.0, KDeviceHeight - adH, adW, adH);
- }
- if ([adPostionStr isEqualToString:@"BottomRight"]) {
- frame = CGRectMake(kDeviceWidth-adW, KDeviceHeight - adH, adW, adH);
- }
-
- UIViewController *rootVC = [self getRootViewController];
- [[AdManager sharedManager] loadAndShowBannerAdWithFrame:frame InView:rootVC.view];
- }
- }
- -(void) consentInformationReset{
- [[AdManager sharedManager] consentInformationReset];
- }
- -(void)hideBannerAd {
- [[AdManager sharedManager] hiddenBannerAd];
- }
- -(void)loadInterstitialAd {
- [[AdManager sharedManager] loadInterstitialAd];
- }
- -(void)showInterstitialAd {
- UIViewController *rootVC = [self getRootViewController];
- [[AdManager sharedManager] showInterstitialAdWithViewController:rootVC];
- }
- -(void)loadRewardedVideoAd {
- [[AdManager sharedManager] loadRewardedVideoAd];
- }
- -(bool)hasRewardedVideo {
- return [[AdManager sharedManager] hasRewardedVideo];
- }
- -(bool)hasRewardedVideoWithID:(const char *)idStr {
- NSString *adID = [self cStrToNSString:idStr];
- return [[AdManager sharedManager] hasRewardedVideoWithAdID:adID];
- }
- -(const char *)getAllRewardedVideoIdsStates {
- return [self nsstringToCharWithStr:[[AdManager sharedManager] mopub_idsStatesArr]];
- }
- -(void)showRewardedVideoAd {
-
- UIViewController *rootVC = [self getRootViewController];
- [[AdManager sharedManager] showRewardedVideoAdWithViewController:rootVC];
- }
- -(void)showRewardedVideoAdWithID:(const char *)idStr {
- NSString *adID = [self cStrToNSString:idStr];
- UIViewController *rootVC = [self getRootViewController];
- [[AdManager sharedManager] showRewardedVideoAdWithViewController:rootVC videoID:adID];
- }
- -(void)loadRewardedInterstitialAd {
- [[AdManager sharedManager] loadRewardedInterstitialAd];
- }
- -(void)showRewardedInterstitialAd {
- UIViewController *rootVC = [self getRootViewController];
- [[AdManager sharedManager] showRewardedInterstitialAdWithViewController:rootVC];
- }
- -(void)loadAppOpenAd{
- [[AdManager sharedManager] loadAppOpenAd];
- }
- -(void)showAppOpenAd{
- UIViewController *rootVC = [self getRootViewController];
- [[AdManager sharedManager] showAppOpenAdWithViewController:rootVC];
- }
- -(void)loadFeedbackViewControllerWithDataStr:(const char *)dataStr {
- NSString *dataStrStr = [self cStrToNSString:dataStr];
- [[UnitlsManager shareM] loadFeedbackViewControllerWithData:dataStrStr];
- }
- -(void)loadFeedbackViewController {
- [[UnitlsManager shareM] loadFeedbackViewControllerWithData:@""];
- }
- #pragma mark - 统计相关函数
- - (void)customEventWithKey:(const char *)keyStr dicJsonStr:(const char *)dicJsonStr {
- NSString *keyStrStr = [self cStrToNSString:keyStr];
- NSString *dicJsonStrStr = [self cStrToNSString:dicJsonStr];
- [AnalyticsManager customEventWithKey:keyStrStr dicJsonStr:dicJsonStrStr];
- }
- /// 友盟自定义统计事件
- /// @param keyStr 事件名称
- /// @param dicJsonStr 事件参数字典JSON字符串,无参数时请传空字符串:""
- - (void)umengCustomEventWithKey:(const char *)keyStr dicJsonStr:(const char *)dicJsonStr{
- NSString *keyStrStr = [self cStrToNSString:keyStr];
- NSString *dicJsonStrStr = [self cStrToNSString:dicJsonStr];
- [AnalyticsManager umengCustomEventWithKey:keyStrStr dicJsonStr:dicJsonStrStr];
- }
- /// FireBase自定义统计事件
- /// @param keyStr 事件名称
- /// @param dicJsonStr 事件参数字典JSON字符串,无参数时请传空字符串:""
- - (void)firebaseCustomEventWithKey:(const char *)keyStr dicJsonStr:(const char *)dicJsonStr{
- NSString *keyStrStr = [self cStrToNSString:keyStr];
- NSString *dicJsonStrStr = [self cStrToNSString:dicJsonStr];
- [AnalyticsManager firebaseCustomEventWithKey:keyStrStr dicJsonStr:dicJsonStrStr];
- }
- /// AppsFlyer自定义统计事件
- /// @param keyStr 事件名称
- /// @param dicJsonStr 事件参数字典JSON字符串,无参数时请传空字符串:""
- - (void)appsFlyerCustomEventWithKey:(const char *)keyStr dicJsonStr:(const char *)dicJsonStr{
- NSString *keyStrStr = [self cStrToNSString:keyStr];
- NSString *dicJsonStrStr = [self cStrToNSString:dicJsonStr];
- [AnalyticsManager appsFlyerCustomEventWithKey:keyStrStr dicJsonStr:dicJsonStrStr];
- }
- /// Facebook自定义统计事件
- /// @param keyStr 事件名称
- /// @param dicJsonStr 事件参数字典JSON字符串,无参数时请传空字符串:""
- - (void)facebookCustomEventWithKey:(const char *)keyStr dicJsonStr:(const char *)dicJsonStr{
- NSString *keyStrStr = [self cStrToNSString:keyStr];
- NSString *dicJsonStrStr = [self cStrToNSString:dicJsonStr];
- [AnalyticsManager facebookCustomEventWithKey:keyStrStr dicJsonStr:dicJsonStrStr];
- }
- /// Facebook自定义统计事件 带需要统计总数参数的事件
- - (void)facebookCustomEventWithKey:(const char *)keyStr valueToSum:(double)valueS dicJsonStr:(const char *)dicJsonStr{
- NSString *keyStrStr = [self cStrToNSString:keyStr];
- NSString *dicJsonStrStr = [self cStrToNSString:dicJsonStr];
- [AnalyticsManager facebookCustomEventWithKey:keyStrStr valueToSum:valueS dicJsonStr:dicJsonStrStr];
- }
- - (void)setUserLevelId:(int)level {
- // [AnalyticsManager setUserLevelId:level];
- }
- - (void)payWithCash:(double)cash isTest:(bool)isTest productID:(const char *)productID {
- NSString *productIDStr = [self cStrToNSString:productID];
- [AnalyticsManager payWithCash:cash isTest:isTest productID:productIDStr];
- }
- - (void)payWithCash:(double)cash source:(int)source coin:(double)coin {
- [AnalyticsManager payWithCash:cash source:source coin:coin];
- }
- - (void)payWithCash:(double)cash source:(int)source item:(const char *)item amount:(int)amount price:(double)price {
- NSString *itemStr = [self cStrToNSString:item];
- [AnalyticsManager payWithCash:cash source:source item:itemStr amount:amount price:price];
- }
- - (void)buyWithItem:(const char *)item amount:(int)amount price:(double)price {
- NSString *itemStr = [self cStrToNSString:item];
- [AnalyticsManager buyWithItem:itemStr amount:amount price:price];
- }
- - (void)useWithItem:(const char *)item amount:(int)amount price:(double)price {
- NSString *itemStr = [self cStrToNSString:item];
- [AnalyticsManager useWithItem:itemStr amount:amount price:price];
- }
- - (void)startLevel:(const char *)levelName {
- NSString *levelNameStr = [self cStrToNSString:levelName];
- [AnalyticsManager startLevel:levelNameStr];
- }
- - (void)finishLevel:(const char *)levelName {
- NSString *levelNameStr = [self cStrToNSString:levelName];
- [AnalyticsManager finishLevel:levelNameStr];
- }
- - (void)failLevel:(const char *)levelName {
- NSString *levelNameStr = [self cStrToNSString:levelName];
- [AnalyticsManager failLevel:levelNameStr];
- }
- - (void)bonus:(double)coin source:(int)source {
- [AnalyticsManager bonus:coin source:source];
- }
- - (void)bonus:(const char *)item amount:(int)amount price:(double)price source:(int)source {
- NSString *itemStr = [self cStrToNSString:item];
- [AnalyticsManager bonus:itemStr amount:amount price:price source:source];
- }
- #pragma mark - 内购
- /// App 专用共享密钥 ,假如应用内有自动续期订阅则必须使用该值
- -(void)initApplePayWithSharedSecretKey:(const char *)sharedSecretKey{
- NSString *sharedSecretKeyStr = [self cStrToNSString:sharedSecretKey];
- [[ApplePayAgent shareManager] initApplePayWithSharedSecretKey:sharedSecretKeyStr];
- }
- - (void)applePayWithProductId:(const char* )productId {
- NSString *productIdStr = [self cStrToNSString:productId];
-
- [ApplePayAgent shareManager].delegate = self;
-
- [[ApplePayAgent shareManager] payParams:productIdStr];
- }
- -(void)applePayWithProductId:(const char* )productId activeId:(const char* )activeId {
- NSString *productIdStr = [self cStrToNSString:productId];
- NSString *activeIdStr = [self cStrToNSString:activeId];
-
- [ApplePayAgent shareManager].delegate = self;
- [[ApplePayAgent shareManager] payParams:productIdStr activeId:activeIdStr];
- }
- -(void)appsflyerValidateWithSkuId:(const char*)skuId transactionIdentifier:(const char*)transactionId {
- NSString *skuIdStr = [self cStrToNSString:skuId];
- NSString *transactionIdStr = [self cStrToNSString:transactionId];
-
- [[ApplePayAgent shareManager] appsflyerValidateWithSkuId:skuIdStr transactionIdentifier:transactionIdStr];
- }
- -(void)restore {
- [ApplePayAgent shareManager].delegate = self;
-
- [[ApplePayAgent shareManager] restore];
- }
- -(void)getProductsInfoWithProductIds:(const char* )productIds {
- NSString *productIdsStr = [self cStrToNSString:productIds];
-
- [[ApplePayAgent shareManager] getProductsInfoWithProductsArrJsonStr:productIdsStr success:^(NSString *proInfos) {
- UnitySendMessage(kUnityObjectName, "SkuDetail", [self nsstringToCharWithStr:proInfos]);
- } failure:^(NSError *error) {
- UnitySendMessage(kUnityObjectName, "SkuDetail", "");
- }];
- }
- -(void)checkNoFinishTransaction{
- [ApplePayAgent shareManager].delegate = self;
- [[ApplePayAgent shareManager] checkNoFinishTransaction];
- }
- -(void)finshOneTransaction:(const char* )transactionId {
- NSString *transactionIdStr = [self cStrToNSString:transactionId];
- [[ApplePayAgent shareManager] finshOneTransactionWithTransactionID:transactionIdStr];
- }
- #pragma mark - 本地推送
- - (void)setLocalNoticeWithID:(int)identifier titleStr:(const char *)title bodyStr:(const char *)body delayInSeconds:(int)seconds{
- NSString *identifierStr = @(identifier).stringValue;
- NSString *titleStr = [self cStrToNSString:title];
- NSString *bodyStr = [self cStrToNSString:body];
-
- [[PushManager shareManager] setLocalNotificationWithID:identifierStr titleStr:titleStr bodyStr:bodyStr delayInSeconds:@(seconds)];
- }
- // 移除某一个指定的通知
- - (void)cancleLocalNotificationWithID:(int)identifier{
- NSString *identifierStr =@(identifier).stringValue;
- [[PushManager shareManager] cancleLocalNotificationWithID:identifierStr];
- }
- // 移除所有通知
- - (void)cancleAllLocalNotification{
- [[PushManager shareManager] cancleAllLocalNotification];
- }
- #pragma mark - 分享
- -(void)shareTextWithMsg:(const char *)msg {
- NSString *titleStr = [self cStrToNSString:msg];
- //分享的标题
- NSString *text =titleStr;
- //分享的图片
- // UIImage *image= [UIImage imageNamed:@"分享的图片.png"];
- //分享的url
- // NSURL*url = [NSURL URLWithString:@"分享的url"];
- //把分项的文字, 图片, 链接放入数组
- NSArray*activityItems = @[text];
- UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
- //不出现在活动项目
- // activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll];
- //弹出分享的页面
- [[self getRootViewController] presentViewController:activityVC animated:YES completion:nil];
- // 分享后回调
- activityVC.completionWithItemsHandler= ^(UIActivityType _Nullable activityType,BOOL completed,NSArray*_Nullable returnedItems,NSError*_Nullable activityError) {
- if(completed) {
- NSLog(@"completed");
- //分享成功
- }else{
- NSLog(@"cancled");
- //分享取消
- }
- };
- }
- #pragma mark - 登录
- -(void)loginUseAppleSign {
- [[LoginManager shareM] setDelegate:self];
- if (@available(iOS 13.0, *)) {
- [[LoginManager shareM] loginUseAppleSign];
- } else {
- // Fallback on earlier versions
- NSLog(@"该方法(loginUseAppleSign)仅支持iOS 13版本及以上使用");
- }
- }
- -(void)loginUseFacebook {
- [[LoginManager shareM] setDelegate:self];
- [[LoginManager shareM] loginUseFacebook];
- }
- -(void)facebookLogOut{
- //[[LoginManager shareM] logOutFacebook];
- [[LoginManager shareM] setDelegate:self];
- [[LoginManager shareM] revokeAuthFacebook];
- }
- #pragma mark - GameCenter
- -(void)gameCenterLogin{
- [[GameCenterManager shareM] authPlayer];
- [GameCenterManager shareM].delegate = self;
- }
- //上传最高分
- -(void)saveHighScore:(const char *)leaderboardId score:(long int)score {
- NSString *leaderboardIdStr = [self cStrToNSString:leaderboardId];
- [[GameCenterManager shareM] saveHighScoreWithLeaderboardId:leaderboardIdStr score:@(score).intValue];
- }
- ///显示排行榜 可以跳转到自定的 game 排行榜 和 跳转到那个时间段
- - (void)ShowSystomGameCenterWithLeaderboardId:(const char *)leaderboardId time:(int)time{
- NSString *leaderboardIdStr = [self cStrToNSString:leaderboardId];
- [[GameCenterManager shareM] ShowSystomGameCenterWithLeaderboardId:leaderboardIdStr time:time];
- }
- ///获取排行榜信息 下载game center 某一排行榜中的分数及排名情况
- - (void)downLoadHighScoreWithTime:(int)timeType leaderboardId:(const char *)leaderboardId count:(int)count{
- NSString *leaderboardIdStr = [self cStrToNSString:leaderboardId];
- [[GameCenterManager shareM] downLoadHighScoreWithTime:timeType leaderboardId:leaderboardIdStr count:count];
- }
- ///获取排行榜信息 下载game center 某一排行榜中的分数及排名情况
- - (void)downLoadHighScoreWithTime:(int)timeType leaderboardId:(const char *)leaderboardId{
- NSString *leaderboardIdStr = [self cStrToNSString:leaderboardId];
- [[GameCenterManager shareM] downLoadHighScoreWithTime:timeType leaderboardId:leaderboardIdStr];
- }
- //上传存档
- -(void)uploadAcrive:(const char *)data name:(const char *)name {
- NSString *dataStr = [self cStrToNSString:data];
- NSString *nameStr = [self cStrToNSString:name];
-
- [[GameCenterManager shareM] uploadAcriveWithDataStr:dataStr name:nameStr];
- }
- //上传默认存档
- -(void)uploadAcrive:(const char *)data {
- NSString *dataStr = [self cStrToNSString:data];
-
- [[GameCenterManager shareM] uploadAcriveWithDataStr:dataStr name:@"GameData"];
- }
- //下载单个默认的存档
- -(void)downloadOneSavedAcrive {
- [[GameCenterManager shareM] loadSaveData:@"GameData"];
- }
- //下载存档数组
- -(void)downloadAllSavedAcrive {
- [[GameCenterManager shareM] fetchAllSavedGames];
- }
- //下载单个存档
- -(void)downloadOneSavedAcrive:(const char *)name {
- NSString *nameStr = [self cStrToNSString:name];
- [[GameCenterManager shareM] loadSaveData:nameStr];
- }
- //删除单个存档
- -(void)deleteOneSavedAcrive:(const char *)name {
- NSString *nameStr = [self cStrToNSString:name];
- [[GameCenterManager shareM] deleteSavedGamesWithName:nameStr];
- }
- //解决存档冲突
- -(void)resolveConflictingSavedGames:(const char *)data name:(const char *)name {
- NSString *dataStr = [self cStrToNSString:data];
- NSString *nameStr = [self cStrToNSString:name];
- [[GameCenterManager shareM] resolveConflictingSavedGames:dataStr name:nameStr];
- }
- #pragma mark - 获取设备信息和权限
- //获取友盟设备ID
- -(const char *)getUmengDeviceID {
- return [self nsstringToCharWithStr:[AnalyticsManager getUmengDeviceIDForIntegration]];
- }
- /// 获取设备IDFA
- -(const char *)getDeviceIDFA {
- return [self nsstringToCharWithStr:[[ToolsManager sharedM] getDeviceIDFA]];
- }
- /// 获取设备IDFV
- -(const char *)getDeviceIDFV {
- return [self nsstringToCharWithStr:[[ToolsManager sharedM] getDeviceIDFV]];
- }
- /// 获取设备UDID
- -(const char *)getDeviceUdid{
- return [self nsstringToCharWithStr:[[ToolsManager sharedM] getDeviceUdid]];
- }
- /// 是否是异形屏
- -(BOOL)isAbnormityScreen{
- return [[ToolsManager sharedM] isAbnormityScreen];
- }
- /// 手机别名: 用户定义的名称
- -(const char *)getUserPhoneName{
- return [self nsstringToCharWithStr:[[ToolsManager sharedM] getUserPhoneName]];
- }
- -(const char *)getCarrierName {
- return [self nsstringToCharWithStr:[[ToolsManager sharedM] getCarrierName]];
- }
- -(const char *)getDeviceVersion {
- return [self nsstringToCharWithStr:[[ToolsManager sharedM] getDeviceVersion]];
- }
- /// 获取设备系统版本
- -(const char *)getDeviceSystomVersion{
- return [self nsstringToCharWithStr:[[ToolsManager sharedM] getDeviceSystomVersion]];
- }
- /// 获取设备信息
- -(const char *)getDeviceInfo{
- NSString *dicJson = [NSDictionary convertNSDictionaryToJsonString:[[ToolsManager sharedM] getDeviceInfo]];
- return [self nsstringToCharWithStr:dicJson];
- }
- -(const char *)getCurrentNetworkState{
- return [self nsstringToCharWithStr:[[ToolsManager sharedM] getCurrentNetworkState]];
- }
- /// 申请/验证某个权限(异步方法,需要配合authComplateWithTypeName回调方法使用)
- -(void)authorizeWithType:(int)typeInt{
- [[ToolsManager sharedM] authorizeWithType:typeInt];
- }
- /// 验证是否拥有某个权限
- -(BOOL)hasAuthorizeWithType:(int)typeInt{
- return [[ToolsManager sharedM] hasAuthorizeWithType:typeInt];
- }
- /// 显示系统提示框,提示用户去设置对应权限,点击设置跳转到设置页面
- -(void)showAlertViewWithTitle:(const char*)title msg:(const char*)message cancel:(const char*)cancel setting:(const char*)setting{
- NSString *titleStr = [self cStrToNSString:title];
- NSString *messageStr = [self cStrToNSString:message];
- NSString *cancelStr = [self cStrToNSString:cancel];
- NSString *settingStr = [self cStrToNSString:setting];
-
- [[ToolsManager sharedM] showAlertViewWithTitle:titleStr msg:messageStr cancel:cancelStr setting:settingStr];
- }
- -(void)shareToFacebookWithUrl:(const char*)url imagePath:(const char*)imagePath {
- [UnitlsManager shareM].delegate = self;
- [[UnitlsManager shareM] shareToFacebookWithUrl:[self cStrToNSString:url] imagePath:[self cStrToNSString:imagePath]];
- }
- -(void)shareImageToFacebookGamingWithImagePath:(const char*)imagePath title:(const char*)title{
- [UnitlsManager shareM].delegate = self;
- [[UnitlsManager shareM] shareImageToFacebookGamingWithImagePath:[self cStrToNSString:imagePath] caption:[self cStrToNSString:title]];
- }
- -(void)shareVideoToFacebookGamingWithImagePath:(const char*)imagePath title:(const char*)title {
- [UnitlsManager shareM].delegate = self;
- [[UnitlsManager shareM] shareVideoToFacebookGamingWithVideoPath:[self cStrToNSString:imagePath] caption:[self cStrToNSString:title]];
- }
- -(void)launchFacebookPlayerFinderDialog {
- [UnitlsManager shareM].delegate = self;
- [[UnitlsManager shareM] launchFacebookPlayerFinderDialog];
- }
- //@TODO:FaceBook回调方法
- -(void)facebookShareComplete:(NSDictionary *)dic {
- NSNumber *state = dic[key_states];
- UnitySendMessage(kUnityObjectName, "facebookShareComplete", [self nsstringToCharWithStr:state.stringValue]);
- }
- -(void)facebookShareUploadComplete:(NSDictionary *)dic{
- NSString *msg = dic[msg];
- UnitySendMessage(kUnityObjectName, "facebookUploadComplete", [self nsstringToCharWithStr:msg]);
- }
- -(void)facebookPlayerFinderComplete:(NSDictionary *)dic{
- NSString *msg = dic[msg];
- UnitySendMessage(kUnityObjectName, "facebookFriendFinderResult", [self nsstringToCharWithStr:msg]);
- }
- #pragma mark - Api接口相关函数
- /// 初始化网络请求所需参数
- -(void)initServicesGameID:(const char *)gameId gameSecret:(const char *)gameSecret isDebug:(int)isDebug {
- NSString *gameIdStr = [self cStrToNSString:gameId];
- NSString *gameSecretStr = [self cStrToNSString:gameSecret];
- [[YLApisManager sharedManager] initSDKWithGameID:gameIdStr signStr:gameSecretStr isDebug:isDebug];
- [YLApisManager sharedManager].delegate = self;
- [[AdManager sharedManager] initServicesGameID:gameIdStr gameSecret:gameSecretStr isDebug:isDebug];
- }
- /// 初始化网络请求
- -(void)initServicesGameID:(const char *)gameId gameSecret:(const char *)gameSecret baseUrl:(const char *)baseUrl {
- NSString *gameIdStr = [self cStrToNSString:gameId];
- NSString *gameSecretStr = [self cStrToNSString:gameSecret];
- NSString *baseUrlStr = [self cStrToNSString:baseUrl];
-
- [[YLApisManager sharedManager] initSDKWithGameID:gameIdStr signStr:gameSecretStr baseUrl:baseUrlStr];
- [YLApisManager sharedManager].delegate = self;
- [[AdManager sharedManager] initServicesGameID:gameIdStr gameSecret:gameSecretStr baseUrl:baseUrlStr];
- }
- //提交反馈
- -(void)feedBackSubmitWithMsg:(const char *)msg connect:(const char* )connect docInfo:(const char* )docInfo {
- NSString *msgStr = [self cStrToNSString:msg];
- NSString *connectStr = [self cStrToNSString:connect];
- NSString *docInfoStr = [self cStrToNSString:docInfo];
-
- [[AdManager sharedManager] feedbackSubmitWithMsg:msgStr contact:connectStr documentinfo:docInfoStr];
- }
- /// 获取活动列表
- /// @param channel 渠道标识 0:官方包3:vivo 4:oppo 5:huawei 6:4399 7:应用宝8:xiaomi或其他在后台渠道管理页面定义的标识
- /// @param language 公告本地化关键词 CN-简体中文,TW-繁体中文,US-英文
- -(void)getActivitiesWithChannel:(const char *)channel language:(const char *)language {
- NSString *channelStr = [self cStrToNSString:channel];
- NSString *languageStr = [self cStrToNSString:language];
-
- [[YLApisManager sharedManager] getActivitiesWithChannel:channelStr language:languageStr];
- }
- /// 获取广告列表
- /// @param channel 渠道标识 0:官方包3:vivo 4:oppo 5:huawei 6:4399 7:应用宝8:xiaomi或其他在后台渠道管理页面定义的标识
- /// @param version 适用的版本
- /// @param language 公告本地化关键词 CN-简体中文,TW-繁体中文,US-英文
- -(void)getGameAnoncementsWithChannel:(const char *)channel version:(const char *)version language:(const char *)language {
- NSString *channelStr = [self cStrToNSString:channel];
- NSString *versionStr = [self cStrToNSString:version];
- NSString *languageStr = [self cStrToNSString:language];
-
- [[YLApisManager sharedManager] getGameAnoncementsWithChannel:channelStr version:versionStr language:languageStr];
- }
- ///渠道下单接口,根据不同渠道需要的数据不同 返回的数据结构不同,前端需要根据情况解析
- -(void)channelPayOrderWithChannel:(const char *)channel goodsId:(const char *)goodsId{
- NSString *channelStr = [self cStrToNSString:channel];
- NSString *goodsIdStr = [self cStrToNSString:goodsId];
-
- [[YLApisManager sharedManager] channelPayOrderWithChannel:channelStr goodsId:goodsIdStr];
- }
- //-(void)channelPay4399Notify;
- //-(void)channelPayOppoNotifyWithChannel:(const char *)channel;
- //获取当前游戏,渠道的最新版本 返回结果无加密
- -(void)channelpayGetAppVersionWithChannel:(int)channel{
- [[YLApisManager sharedManager] channelpayGetAppVersionWithChannel:@(channel)];
- }
- ///获取服务器配置 appver:如果不需要根据版本判断可以串0 lastver:每次全新获取传0
- -(void)configSyncWithAppVer:(const char *)appVer lastVer:(int)lastVer {
- NSString *appVerStr = [self cStrToNSString:appVer];
-
- [[YLApisManager sharedManager] configSyncWithAppVer:appVerStr lastVer:@(lastVer)];
- }
- ///获取服务器配置 appver:如果不需要根据版本判断可以串0 lastver:每次全新获取传0
- -(void)configServerInfo {
- [[YLApisManager sharedManager] configServerinfo];
- }
- ///兑换码兑换接口
- -(void)dedeemConsumeWithRedeemCode:(const char *)redeemCode {
- NSString *redeemCodeStr = [self cStrToNSString:redeemCode];
-
- [[YLApisManager sharedManager] dedeemConsumeWithRedeemCode:redeemCodeStr];
- }
- ///根据渠道兑换码兑换接口
- -(void)redeemConsumeWithRedeemCode:(const char *)redeemCode channel:(const char *)channel{
- NSString *redeemCodeStr = [self cStrToNSString:redeemCode];
- NSString *channelStr = [self cStrToNSString:channel];
-
- [[YLApisManager sharedManager] redeemConsumeWithRedeemCode:redeemCodeStr channel:channelStr];
- }
- /// 根据渠道和用户兑换码兑换接口
- /// @param channel 渠道标识 0:官方包 3:vivo 4:oppo 5:huawei 6:4399 7:应用宝 8:xiaomi 或其他在后台渠道管理页面定义的标识
- -(void)redeemUserConsumeWithRedeemCode:(const char *)redeemCode channel:(const char *)channel clientId:(const char *)clientId {
- NSString *redeemCodeStr = [self cStrToNSString:redeemCode];
- NSString *channelStr = [self cStrToNSString:channel];
- NSString *clientIdStr = [self cStrToNSString:clientId];
-
- [[YLApisManager sharedManager] redeemUserConsumeWithRedeemCode:redeemCodeStr channel:channelStr clientId:clientIdStr];
- }
- ///登录接口微信-游客 登录之后返回token,每次操作验证token 请求需要签名,返回数据无加密
- -(void)userLoginWithMarkId:(const char *)markId type:(int)type name:(const char *)name iconurlStr:(const char *)icon {
- NSString *markIdStr = [self cStrToNSString:markId];
- NSString *nameStr = [self cStrToNSString:name];
- NSString *iconStr = [self cStrToNSString:icon];
-
- [[YLApisManager sharedManager] userLoginWithMarkId:markIdStr type:@(type) name:nameStr iconurlStr:iconStr];
- }
- ///获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密
- -(void)userSyncWithArchive:(const char *)archive archiveVersion:(int)archiveVersion {
- NSString *archiveStr = [self cStrToNSString:archive];
-
- [[YLApisManager sharedManager] userSyncWithArchive:archiveStr archiveVersion:@(archiveVersion)];
- }
- ///获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 3.文件流不加入签名 4.返回字符串编码为ascii 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密
- -(void)userSyncStream {
- [[YLApisManager sharedManager] userSyncStream];
- }
- ///心跳检测,判断当前客户端登陆是否有效 请求需要签名,返回数据无加密
- -(void)userHeartbeat {
- [[YLApisManager sharedManager] userHeartbeat];
- }
- ///用户下订接口,下单成功之后返回支付链接 -跳转支付页面
- -(void)userOrderWithGoodsId:(const char *)goodsId {
- NSString *goodsIdStr = [self cStrToNSString:goodsId];
-
- [[YLApisManager sharedManager] userOrderWithGoodsId:goodsIdStr];
- }
- ///恢复购买,查看已完成的所有订单,以及消耗状态 请求需要签名,返回结果有加密
- -(void)userResumePurchase {
- [[YLApisManager sharedManager] userResumePurchase];
- }
- ///订单消耗 请求需要签名,返回结果有加密
- -(void)userConsumeWithGoodsId:(const char *)goodsId orderId:(const char *)orderId {
- NSString *orderIdStr = [self cStrToNSString:orderId];
- NSString *goodsIdStr = [self cStrToNSString:goodsId];
-
- [[YLApisManager sharedManager] userConsumeWithGoodsId:goodsIdStr orderId:orderIdStr];
- }
- ///查询单个订单的状态 用来处理非消耗性商品,判断订单是否支付完成 返回结果有加密 Orderstatus - 0 未购买 1 已购买 未消耗 2 已购买 已消耗
- /// @param goodsId 商品ID
- /// @param orderId 订单ID
- -(void)userQueryOrderWithGoodsId:(const char *)goodsId orderId:(const char *)orderId {
- NSString *orderIdStr = [self cStrToNSString:orderId];
- NSString *goodsIdStr = [self cStrToNSString:goodsId];
-
- [[YLApisManager sharedManager] userQueryOrderWithGoodsId:goodsIdStr orderId:orderIdStr];
- }
- ///获取排行榜 用户信息
- -(void)userLeaderboard {
- [[YLApisManager sharedManager] userLeaderboard];
- }
- ///提交用户分数 返回用户排行榜信息,返回结果无加密
- -(void)userUploadScoreWithScore:(int)score info:(const char *)info rankingId:(const char *)rankingId {
- NSString *infoStr = [self cStrToNSString:info];
- NSString *rankingIdStr = [self cStrToNSString:rankingId];
-
- [[YLApisManager sharedManager] userUploadScoreWithScore:@(score) info:infoStr rankingId:rankingIdStr];
- }
- ///获取用户自己的排名
- -(void)userGetUserRankWithRankingId:(const char *)rankingId {
- NSString *rankingIdStr = [self cStrToNSString:rankingId];
-
- [[YLApisManager sharedManager] userGetUserRankWithRankingId:rankingIdStr];
- }
- -(void)payrecordSubmit{
- [[YLApisManager sharedManager] payrecordSubmit];
- }
- -(void)overseaPayAppleValidateWithReceipt:(const char *)receipt appleOrderId:(const char *)appleOrderId sku:(const char *)sku skuType:(const char *)skuType price:(const char *)price actId:(const char *)actId {
- NSString *receiptStr = [self cStrToNSString:receipt];
- NSString *appleOrderIdStr = [self cStrToNSString:appleOrderId];
- NSString *skuStr = [self cStrToNSString:sku];
- NSString *skuTypeStr = [self cStrToNSString:skuType];
- NSString *priceStr = [self cStrToNSString:price];
- NSString *actIdStr = [self cStrToNSString:actId];
-
- [[YLApisManager sharedManager] overseaPayAppleValidateWithReceipt:receiptStr appleOrderId:appleOrderIdStr sku:skuStr skuType:skuTypeStr price:priceStr actId:actIdStr];
- }
- -(void)gamekeyinfoUploadWithInfoJson:(const char*)infoJson{
- NSString *infoJsonStr = [self cStrToNSString:infoJson];
- [[YLApisManager sharedManager] gamekeyinfoUploadWithInfoJson:infoJsonStr];
- }
- /// 获取后台配置的所有商品信息
- -(void)getAllGoods{
- [[YLApisManager sharedManager] getAllGoods];
- }
- #pragma mark - 显示自带网页
- //弹出游戏推荐
- -(void)showGameRecommendWebView {
- [UnitlsManager shareM].delegate = self;
- [[UnitlsManager shareM] loadShareWebViewVC];
- }
- -(void)ShowGameForumWebView {
-
- [UnitlsManager shareM].delegate = self;
- [[UnitlsManager shareM] loadShareWebViewVC];
- }
- //根据网址传入展示网页
- -(void)showWebViewWithUrl:(const char *)url {
- NSString *urlStr = [self cStrToNSString:url];
-
- [UnitlsManager shareM].delegate = self;
- [[UnitlsManager shareM] showOneWebViewWithUrlStr:urlStr];
- }
- -(void)showForumWebViewVCWithGameId:(const char *)gameId userId:(const char *)userId email:(const char *)email{
- NSString *gameIdStr = [self cStrToNSString:gameId];
- NSString *userIdStr = [self cStrToNSString:userId];
- NSString *emailStr = [self cStrToNSString:email];
-
- [UnitlsManager shareM].delegate = self;
- [[UnitlsManager shareM] loadForumWebViewVCWithGameId:gameIdStr userId:userIdStr email:emailStr];
- }
- #pragma mark - 工具方法
- /// 跳转到App Store中撰写评论和评分
- /// @param appID 苹果应用ID
- -(void)gotoAppStoreWriteReviewWithAppId:(const char *)appID {
- NSString *appIDStr = [self cStrToNSString:appID];
- [[UnitlsManager shareM] gotoAppStoreWriteReviewWithAppId:appIDStr];
- }
- -(void)showSysReview{
- [[UnitlsManager shareM] showSysReview];
- }
- #pragma mark - 协议函数
- /**
- UnitySendMessage(<#const char *#>, <#const char *#>, <#const char *#>);
- * 第一个参数:是unity那边创建的场景对象名
- * 第二个参数:这个对象绑定的C#脚本中的方法
- * 第三个参数:是iOS这边要传给unity那边的参数
- */
- //banner加载成功
- -(void)bannerDidLoadAd {
- UnitySendMessage(kUnityObjectName, "bannerDidLoadAd", "");
- }
- //banner加载失败
- -(void)bannerDidFailToLoadWithMsg:(NSString *)errMsg {
- UnitySendMessage(kUnityObjectName, "bannerDidFailToLoadWithMsg", [self nsstringToCharWithStr:errMsg]);
- }
- //banner接收到点击事件
- -(void)bannerDidReceiveTapEvent {
- UnitySendMessage(kUnityObjectName, "bannerDidReceiveTapEvent", "");
- }
- /**
- interstitial加载成功
- */
- -(void)interstitialDidLoadAd {
- UnitySendMessage(kUnityObjectName, "interstitialDidLoadAd", "");
- }
- /**
- interstitial加载失败, 仅在手动加载单条广告且加载失败时才会调用
-
- @param errMsg 错误msg
- */
- -(void)interstitialDidFailToLoadWithMsg:(NSString *)errMsg {
- UnitySendMessage(kUnityObjectName, "interstitialDidFailToLoadWithMsg", [self nsstringToCharWithStr:errMsg]);
- }
- /**
- interstitial接收到点击事件
- */
- -(void)interstitialDidReceiveTapEvent {
- UnitySendMessage(kUnityObjectName, "interstitialDidReceiveTapEvent", "");
- }
- /**
- interstitial已经显示
- */
- -(void)interstitialDidAppear {
- UnityPause(true);
- UnitySendMessage(kUnityObjectName, "interstitialDidAppear", "");
- }
- /**
- interstitial已经关闭
- */
- -(void)interstitialDidDisappear {
- UnityPause(false);
- UnitySendMessage(kUnityObjectName, "interstitialDidDisappear", "");
- }
- /**
- rewardedVideo加载成功
- */
- -(void)rewardedVideoDidLoadAd {
- UnitySendMessage(kUnityObjectName, "rewardedVideoDidLoadAd", "");
- }
- /**
- rewardedVideo加载失败, 仅在手动加载单条广告且加载失败时才会调用
-
- @param errMsg 错误msg
- */
- -(void)rewardedVideoDidFailToLoadWithMsg:(NSString *)errMsg {
- UnitySendMessage(kUnityObjectName, "rewardedVideoDidFailToLoadWithMsg", [self nsstringToCharWithStr:errMsg]);
- }
- /**
- rewardedVideo接收到点击事件
- */
- -(void)rewardedVideoDidReceiveTapEvent {
- UnitySendMessage(kUnityObjectName, "rewardedVideoDidReceiveTapEvent", "");
- }
- /**
- rewardedVideo已经显示
- */
- -(void)rewardedVideoDidAppear {
- UnityPause(true);
- UnitySendMessage(kUnityObjectName, "rewardedVideoDidAppear", "");
- }
- /**
- rewardedVideo已经关闭
- */
- -(void)rewardedVideoDidDisappear {
- UnityPause(false);
- UnitySendMessage(kUnityObjectName, "rewardedVideoDidDisappear", "");
-
- }
- /**
- rewardedVideo播放完成,应该给予奖励
- */
- -(void)rewardedVideoAdShouldReward {
- UnitySendMessage(kUnityObjectName, "rewardedVideoAdShouldReward", "");
- }
- -(void)rewardedVideoAdDidFailToPlayWithMsg:(NSString *)errMsg{
- UnitySendMessage(kUnityObjectName, "rewardedVideoAdDidFailToPlayWithMsg", [self nsstringToCharWithStr:errMsg]);
- }
- -(void)rewardedVideoStatesWithJsonStr:(NSString *)jsonStr {
- UnitySendMessage(kUnityObjectName, "hasRewardedVideo", [self nsstringToCharWithStr:jsonStr]);
- }
- //屏式激励视频
- -(void)rewardedInterstitialDidLoadAd {
- UnitySendMessage(kUnityObjectName, "rewardedInterstitialDidLoadAd", "");
- }
- -(void)rewardedInterstitialDidFailToLoadWithMsg:(NSString *)errMsg {
- UnitySendMessage(kUnityObjectName, "rewardedInterstitialDidFailToLoadWithMsg", [self nsstringToCharWithStr:errMsg]);
- }
- -(void)rewardedInterstitialDidReceiveTapEvent {
- UnitySendMessage(kUnityObjectName, "rewardedInterstitialDidReceiveTapEvent", "");
- }
- -(void)rewardedInterstitialDidAppear {
- UnityPause(true);
- UnitySendMessage(kUnityObjectName, "rewardedInterstitialDidAppear", "");
- }
- -(void)rewardedInterstitialDidDisappear {
- UnityPause(false);
- UnitySendMessage(kUnityObjectName, "rewardedInterstitialDidDisappear", "");
- }
- -(void)rewardedInterstitialAdShouldReward {
- UnitySendMessage(kUnityObjectName, "rewardedInterstitialAdShouldReward", "");
- }
- -(void)rewardedInterstitialAdDidFailToPlayWithMsg:(NSString *)errMsg{
- UnitySendMessage(kUnityObjectName, "rewardedInterstitialAdDidFailToPlayWithMsg", [self nsstringToCharWithStr:errMsg]);
- }
- //APP 开屏广告
- -(void)appOpenAdDidLoad{
- UnitySendMessage(kUnityObjectName, "appOpenAdDidLoad", "");
- }
- -(void)appOpenAdDidFailToLoadWithMsg:(NSString *)errMsg{
- UnitySendMessage(kUnityObjectName, "appOpenAdDidFailToLoad", [self nsstringToCharWithStr:errMsg]);
- }
- -(void)appOpenAdDidReceiveTapEvent{
- UnitySendMessage(kUnityObjectName, "appOpenAdDidReceiveTapEvent", "");
- }
- -(void)appOpenAdDidAppear{
- UnitySendMessage(kUnityObjectName, "appOpenAdDidAppear", "");
- }
- -(void)appOpenAdDidDisappear{
- UnitySendMessage(kUnityObjectName, "appOpenAdDidDisappear", "");
- }
- -(void)appOpenAdShouldReward{
- UnitySendMessage(kUnityObjectName, "appOpenAdShouldReward", "");
- }
- -(void)appOpenAdDidFailToPlayWithMsg:(NSString *)errMsg{
- UnitySendMessage(kUnityObjectName, "appOpenAdDidFailToPlay", [self nsstringToCharWithStr:errMsg]);
- }
- /**
- appsFlyer归因数据回调
- */
- -(void)appsFlyerTrackerDataWithJsonStr:(NSString *)jsonStr{
- UnitySendMessage(kUnityObjectName, "ConversionData", [self nsstringToCharWithStr:jsonStr]);
- }
- /**
- mopub广告数据回调
- */
- -(void)mopubAdIncomeDataWithJsonStr:(NSString *)jsonStr {
- UnitySendMessage(kUnityObjectName, "ImpressionData", [self nsstringToCharWithStr:jsonStr]);
- }
- #pragma mark - 内购回调
- -(void)applePayHaveResultWithMsg:(NSDictionary *)msgDic{
- NSNumber *codeNum = msgDic[Des_Code_Key];
- NSString *msg = msgDic[Des_Msg_Key];
- NSLog(@"%@", msg);
- UnitySendMessage(kUnityObjectName, "internalPayResult", [self nsstringToCharWithStr:codeNum.stringValue]);
-
- if (codeNum.intValue == 1) { //支付成功
- NSLog(@"支付成功");
- NSDictionary *dic = @{
- Des_Code_Key:@(1),
- Des_Msg_Key:msgDic[Des_Msg_Key],
- @"orderId":msgDic[PayTradeIdKey],
- @"packageName":@"",
- @"productId":msgDic[PayproductIdKey],
- @"purchaseTime":msgDic[PayPayTimeKey],
- @"purchaseState":@(1),
- @"purchaseToken":msgDic[PayReceiptKey]?:@"",
- @"acknowledged":@(NO)
- };
- //支付成功后获取详细支付数据
- UnitySendMessage(kUnityObjectName, "acknowledgePurchase", [self nsstringToCharWithStr:[NSDictionary convertNSDictionaryToJsonString:dic]]);
- }else{ //支付失败
- NSLog(@"支付失败");
- }
- }
- -(void)reStoreHaveResultWithMsg:(NSDictionary *)msgDic{
- NSNumber *codeNum = msgDic[Des_Code_Key];
- NSString *msg = msgDic[Des_Msg_Key];
- NSString *msgStr = msgDic[PayDescriptionKey];
- UnitySendMessage(kUnityObjectName, "restoreResult", [self nsstringToCharWithStr:msgStr]);
- if (codeNum.intValue == 1) { //支付成功
- NSLog(@"恢复购买成功");
- }else{ //支付失败
- NSLog(@"恢复购买失败,失败原因:%@", msg);
- }
-
- }
- -(void)applePayHaveNoFinishTransactionWithMsg:(NSArray *)msgArr arrJson:(NSString *)arrJson{
- UnitySendMessage(kUnityObjectName, "Purchase", [self nsstringToCharWithStr:arrJson]);
- }
- //支付校验成功
- -(void)overseaPayAppleValidateHaveResultWithMsg:(NSDictionary *)msgDic{
- UnitySendMessage(kUnityObjectName, "Validate", [self nsstringToCharWithStr:[NSDictionary convertNSDictionaryToJsonString:msgDic]]);
- }
- -(void)showAlertWithTitle:(const char*)title {
- UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"" message:[self cStrToNSString:title] preferredStyle:(UIAlertControllerStyleAlert)];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:(UIAlertActionStyleCancel) handler:^(UIAlertAction * _Nonnull action) {
-
- }];
- [alertVC addAction:okAction];
- UIViewController *rootVC = [self getRootViewController];
- [rootVC presentViewController:alertVC animated:YES completion:nil];
- }
- -(void)loginUseAppleSignDidCompleteWithDic:(NSDictionary *)msgDic{
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "loginDidComplete", [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)loginUseFacebookDidCompleteWithDic:(NSDictionary *)msgDic {
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "loginUseFacebookDidComplete", [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)revokeAuthFacebookDicCompleteWithiDic:(NSDictionary *)msgDic{
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "loginUseFacebookDidComplete", [self nsstringToCharWithStr:jsonStr]);
- if[([msgDic objectForKey:@"Code"] isEqual:@(201)]){
- [admobHelper loginUseFacebook];
- }
- }
- #pragma mark - 接口请求回调函数
- -(void)feedBackSubmitComplectedWithJsonStr:(NSString *)jsonStr{
- UnitySendMessage(kUnityObjectName, "feedBackSubmitComplected", [self nsstringToCharWithStr:jsonStr]);
- }
- #pragma mark - Api接口协议函数
- /**
- UnitySendMessage(<#const char *#>, <#const char *#>, <#const char *#>);
- * 第一个参数:是unity那边创建的场景对象名
- * 第二个参数:这个对象绑定的C#脚本中的方法
- * 第三个参数:是iOS这边要传给unity那边的参数
- * UnitySendMessage(kUnityObjectName, "onBannerLoaded", [self nsstringToCharWithStr:adID]);
- */
- -(void)requestSucessedWithMethodName:(NSString *)methodName jsonStr:(NSString *)jsonStr{
- if ([methodName isEqualToString:Mn_overseaPayUserAppleValidate]) {
- methodName = Mn_overseaPayAppleValidate;
- }
- UnitySendMessage(kUnityObjectServicesName, [self nsstringToCharWithStr:methodName], [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)requestFailWithMethodName:(NSString *)methodName errorStr:(NSString *)errorStr{
- if ([methodName isEqualToString:Mn_overseaPayUserAppleValidate]) {
- methodName = Mn_overseaPayAppleValidate;
- }
- UnitySendMessage(kUnityObjectServicesName, [self nsstringToCharWithStr:methodName], [self nsstringToCharWithStr:errorStr]);
- }
- -(const char *)nsstringToCharWithStr:(NSString *)str {
- const char *charString = "";
- if ([str canBeConvertedToEncoding:NSUTF8StringEncoding]) {
- charString = [str cStringUsingEncoding:NSUTF8StringEncoding];
- }
- return charString;
- }
- #pragma mark - 网页展示回调函数
- -(void)webviewDidOpen {
- UnitySendMessage(kUnityObjectName, "webviewDidOpen", "");
- }
- -(void)webviewDidClose {
- UnitySendMessage(kUnityObjectName, "webviewDidClose", "");
- }
- #pragma mark - GameCenter回调函数
- -(void)loginGameCenterDidCompleteWithDic:(NSDictionary *)msgDic{
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "loginGame", [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)upLoadArchiveDidCompleteWithDic:(NSDictionary *)msgDic {
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "saveGame", [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)downLoadOneArchiveDidCompleteWithDic:(NSDictionary *)msgDic archiveName:(NSString *)archiveName{
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "loadGame", [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)downLoadArchiveDidCompleteWithDic:(NSDictionary *)msgDic{
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "loadAllGame", [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)deleteArchiveDidCompleteWithDic:(NSDictionary *)msgDic{
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "deleteGame", [self nsstringToCharWithStr:jsonStr]);
- }
- /// 解决存档冲突回调
- -(void)resolveConflictingOfArchiveDidCompleteWithDic:(NSDictionary *)msgDic{
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "resolveConflictGame", [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)uploadHighScoreDidCompleteWithDic:(NSDictionary *)msgDic {
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "uploadHighScore", [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)downLoadHighScoreDidCompleteWithDic:(NSDictionary *)msgDic{
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "downLoadHighScore", [self nsstringToCharWithStr:jsonStr]);
- }
- -(void)systomGameCenterDidClose{
- UnitySendMessage(kUnityObjectName, "systomLeaderboardVcDidClose", "");
- }
- #pragma mark - 设备权限回调
- -(void)authComplateWithTypeName:(NSString *)typeName granted:(BOOL)granted firstTime:(BOOL)firstTime{
- NSDictionary *msgDic = @{@"typeName":typeName, @"granted":@(granted), @"firstTime":@(firstTime)};
- NSString *jsonStr = [NSDictionary convertNSDictionaryToJsonString:msgDic];
- UnitySendMessage(kUnityObjectName, "authComplate", [self nsstringToCharWithStr:jsonStr]);
- }
- #pragma mark - C++方法
- #if defined(__cplusplus)
- extern "C"{
- #endif
-
- AdmobSdkUnityAdapter *admobHelper = [[AdmobSdkUnityAdapter alloc] init];
-
- //将char字符串进行一次copy,避免直接返回字符串给Unity时,无法正常返回值
- static const char *yl_cStringCopy(const char *string) {
- if (!string) {
- return NULL;
- }
- char *res = (char *)malloc(strlen(string) + 1);
- strcpy(res, string);
- return res;
- }
-
- //TODO:供u3d调用的c函数
- ///adUnitsJson 同firebase的json字符串
- void InitUnityAdSdk(const char * adUnitsJson,const char * appAppleId,const char * umengId,const char * appsFlyerKey, const char * channel, const char * pangleAppID) {
- [admobHelper initUnityAdSdkWithAdUnitsJson:adUnitsJson appAppleId:appAppleId umengId:umengId appsFlyerKey:appsFlyerKey channel:channel pangleAppID:pangleAppID];
- }
-
- void SetRepeatTime(int time){
- [admobHelper setRepeatTimeWithTime:time];
- }
-
- void IsDebug(bool isDebug) {
- [admobHelper isDebug:isDebug];
- }
-
- ///开启定时自动加载广告
- void AutoLoadAd() {
- [admobHelper openAutoLoadAd];
- }
-
- ///TODO:广告相关函数
- void LoadAndShowBannerAd(const char *adPostion, int bannerHeight) {
- [admobHelper loadAndShowBannerAdWithAdPostion:adPostion bannerHeight:bannerHeight];
- }
-
- void consentInformationReset(){
- [admobHelper consentInformationReset];
- }
-
- void HideBannerAd() {
- [admobHelper hideBannerAd];
- }
-
- void LoadInterstitialAd() {
- [admobHelper loadInterstitialAd];
- }
-
- void ShowInterstitialAd() {
- [admobHelper showInterstitialAd];
- }
-
- void LoadRewardedVideoAd() {
- [admobHelper loadRewardedVideoAd];
- }
-
- bool HasRewardedVideo() {
- return [admobHelper hasRewardedVideo];
- }
-
- bool hasRewardedVideo(const char *idStr) {
- return [admobHelper hasRewardedVideoWithID:idStr];
- }
-
- const char * GetAllRewardedVideoIdsStates(){
- return yl_cStringCopy([admobHelper getAllRewardedVideoIdsStates]);
- }
-
- void ShowRewardedVideoAd() {
- [admobHelper showRewardedVideoAd];
- }
-
- void showRewardedVideoAd(const char *idStr) {
- [admobHelper showRewardedVideoAd];
- }
-
- void LoadRewardedInterstitialAd(){
- [admobHelper loadRewardedInterstitialAd];
- }
-
- void ShowRewardedInterstitialAd(){
- [admobHelper showRewardedInterstitialAd];
- }
-
- void LoadAppOpenAd(){
- [admobHelper loadAppOpenAd];
- }
-
- void ShowAppOpenAd(){
- [admobHelper showAppOpenAd];
- }
-
- void ShowOneAlertView(const char *mesStr) {
- [admobHelper showAlertWithTitle:mesStr];
- }
-
- //TODO:统计相关函数
- void CustomEvent(const char * key, const char * dicJson) {
- [admobHelper customEventWithKey:key dicJsonStr:dicJson];
- }
- void UmengCustomEvent(const char * key, const char * dicJson) {
- [admobHelper umengCustomEventWithKey:key dicJsonStr:dicJson];
- }
- void FireBaseCustomEvent(const char * key, const char * dicJson) {
- [admobHelper firebaseCustomEventWithKey:key dicJsonStr:dicJson];
- }
- void AppsFlyerCustomEvent(const char * key, const char * dicJson) {
- [admobHelper appsFlyerCustomEventWithKey:key dicJsonStr:dicJson];
- }
- void FacebookCustomEvent(const char * key, const char * dicJson) {
- [admobHelper facebookCustomEventWithKey:key dicJsonStr:dicJson];
- }
- void FacebookCustomEventSum(const char * key, double valueToSum, const char * dicJson) {
- [admobHelper facebookCustomEventWithKey:key valueToSum:valueToSum dicJsonStr:dicJson];
- }
-
- void SetUserLevelId(int level) {
- [admobHelper setUserLevelId:level];
- }
-
- void buyProduct(double price, const char * skuId){
- [admobHelper payWithCash:price isTest:false productID:skuId];
- }
-
- // void buyProduct(double price, bool isTest){
- // [admobHelper payWithCash:price isTest:isTest];
- // }
-
- void Pay(double cash, int source, double coin) {
- [admobHelper payWithCash:cash source:source coin:coin];
- }
-
- void PayItem(double cash, int source, const char * itemName, int amount, double price) {
- [admobHelper payWithCash:cash source:source item:itemName amount:amount price:price];
- }
- void Buy(const char * itemName, int amount, double price) {
- [admobHelper buyWithItem:itemName amount:amount price:price];
- }
- void Use(const char * itemName, int amount, double price) {
- [admobHelper useWithItem:itemName amount:amount price:price];
- }
- void StartLevel(const char * levelName) {
- [admobHelper startLevel:levelName];
- }
- void FinishLevel(const char * levelName) {
- [admobHelper finishLevel:levelName];
- }
- void FailLevel(const char * levelName) {
- [admobHelper failLevel:levelName];
- }
- void Bonus(double coin, int source) {
- [admobHelper bonus:coin source:source];
- }
-
- void BonusItem(const char * itemName, int amount, double price, int source) {
- [admobHelper bonus:itemName amount:amount price:price source:source];
- }
-
- //TODO:内购方法
- void InitApplePaySharedSecretKey(const char * sharedSecret) {
- [admobHelper initApplePayWithSharedSecretKey:sharedSecret];
- }
-
- void InternalPay(const char * productId) {
- [admobHelper applePayWithProductId:productId];
- }
-
- void InternalPayActive(const char * productId, const char * activeId) {
- [admobHelper applePayWithProductId:productId activeId:activeId];
- }
-
- void AppsflyerValidate(const char *skuId, const char *transactionId){
- [admobHelper appsflyerValidateWithSkuId:skuId transactionIdentifier:transactionId];
- }
-
- void Restore() {
- [admobHelper restore];
- }
-
- void querySkuDetail(const char * prdIdsStr) {
- [admobHelper getProductsInfoWithProductIds:prdIdsStr];
- }
-
- void queryPurchases() {
- [admobHelper checkNoFinishTransaction];
- }
-
- void FinshOneTransaction(const char * transactionId) {
- [admobHelper finshOneTransaction:transactionId];
- }
-
- //TODO:本地推送
- void SetLocalNotification(int identifier, const char *title, const char *body, int seconds) {
- [admobHelper setLocalNoticeWithID:identifier titleStr:title bodyStr:body delayInSeconds:seconds];
- }
- void CancleLocalNotification(int identifier) {
- [admobHelper cancleLocalNotificationWithID:identifier];
- }
- void CancleAllLocalNotification() {
- [admobHelper cancleAllLocalNotification];
- }
-
- //TODO:分享字符串
- void shareText(const char *msgStr) {
- [admobHelper shareTextWithMsg:msgStr];
- }
- //TODO:登录
- //Apple登录
- void LoginUseAppleSign() {
- [admobHelper loginUseAppleSign];
- }
-
- //Facebook登录
- void LoginUseFacebook() {
- [admobHelper loginUseFacebook];
- }
-
- void FacebookLogOut() {
- [admobHelper facebookLogOut];
- }
-
- //TODO:获取Umeng设备ID
- const char * GetUmengDeviceID() {
- return yl_cStringCopy([admobHelper getUmengDeviceID]);
- }
- //TODO:弹出视图
- //传入链接,弹出WebView视图
- void ShowWebView(const char * url){
- [admobHelper showWebViewWithUrl:url];
- }
-
- //显示游戏推荐webview
- void ShowGameRecommend(){
- [admobHelper showGameRecommendWebView];
- }
-
- //显示游戏论坛webview 游戏ID加用户ID
- void ShowGameForumUserID(const char * gameId, const char * userId){
- [admobHelper showForumWebViewVCWithGameId:gameId userId:userId email:""];
- }
-
- //显示游戏论坛webview 游戏ID加email
- void ShowGameForumEmail(const char * gameId, const char * email){
- [admobHelper showForumWebViewVCWithGameId:gameId userId:"" email:email];
- }
-
- //去App Store中撰写评论
- void GotoAppStoreWriteReview(const char *appID) {
- [admobHelper gotoAppStoreWriteReviewWithAppId:appID];
- }
-
- //调起系统自带应用内评分提示框
- void ShowSysReview() {
- [admobHelper showSysReview];
- }
-
- //调起反馈网页,需要现调用登录接口
- void ShowFeedBackHtml(const char *data) {
- [admobHelper loadFeedbackViewControllerWithDataStr:data];
- }
-
- //@TODO:GameCenter
- //GameCenter 登录
- void GameCenterLogin(){
- [admobHelper gameCenterLogin];
- }
-
- //上传默认存档
- void UploadAcrive(const char *data) {
- [admobHelper uploadAcrive:data];
- }
- //下载单个默认的存档
- void DownloadOneSavedAcrive() {
- [admobHelper downloadOneSavedAcrive];
- }
-
- //上传指定名称存档
- void UploadAcriveHasName(const char *name, const char *data) {
- [admobHelper uploadAcrive:data name:name];
- }
- //下载指定名称存档
- void DownloadOneSavedAcriveHasName(const char *name) {
- [admobHelper downloadOneSavedAcrive:name];
- }
-
- //删除指定名称存档
- void DeleteOneSavedAcrive(const char *name) {
- [admobHelper deleteOneSavedAcrive:name];
- }
-
- //获取该游戏所有存档数组
- void DownloadAllSavedAcrive() {
- [admobHelper downloadAllSavedAcrive];
- }
-
- //解决指定名称存档冲突的情况
- void ResolveConflictingSavedGames(const char *name, const char *data) {
- [admobHelper resolveConflictingSavedGames:data name:name];
- }
-
- // 保存高分至某一个排行榜
- void SaveHighScore(const char *leaderboardId, long int score) {
- [admobHelper saveHighScore:leaderboardId score:score];
- }
- ///显示系统排行榜 可以跳转到自定的 game 排行榜 和 跳转到那个时间段
- void ShowSystomGameCenter(const char *leaderboardId, int time) {
- [admobHelper ShowSystomGameCenterWithLeaderboardId:leaderboardId time:time];
- }
- ///获取排行榜信息 下载game center 某一排行榜中的分数及排名情况
- void DownLoadHighScore(int timeType, const char *leaderboardId, int count) {
- [admobHelper downLoadHighScoreWithTime:timeType leaderboardId:leaderboardId count:count];
- }
-
- void DownLoadMyHighScore(int timeType, const char *leaderboardId) {
- [admobHelper downLoadHighScoreWithTime:timeType leaderboardId:leaderboardId];
- }
-
- //TODO:Api接口
- //初始化接口服务器
- void InitServicesIsDebug(const char * gameId, const char * gameSecret, bool isdebug) {
- [admobHelper initServicesGameID:gameId gameSecret:gameSecret isDebug:isdebug];
- }
-
- //初始化接口服务器
- void InitServices(const char * gameId, const char * gameSecret, const char * baseUrl) {
- [admobHelper initServicesGameID:gameId gameSecret:gameSecret baseUrl:baseUrl];
- }
-
- //请求接口提交用户反馈
- void FeedBackSubmit(const char * msg, const char * connect, const char * docInfo) {
- [admobHelper feedBackSubmitWithMsg:msg connect:connect docInfo:docInfo];
- }
-
- //获取活动
- void getActivitiesWithChannel(const char *channel, const char *language){
- [admobHelper getActivitiesWithChannel:channel language:language];
- }
-
- //获取广告
- void getGameAnoncementsWithChannel(const char *channel, const char *version, const char *language){
- [admobHelper getGameAnoncementsWithChannel:channel version:version language:language];
- }
-
- ///渠道下单接口,根据不同渠道需要的数据不同 返回的数据结构不同,前端需要根据情况解析
- void channelPayOrder(const char *channel,const char *goodsId) {
- [admobHelper channelPayOrderWithChannel:channel goodsId:goodsId];
- }
- //void channelPay4399Notify;
- //void channelPayOppoNotifyWithChannel:(const char *)channel;
-
- void channelPayGetAppVersion(int channel){
- [admobHelper channelpayGetAppVersionWithChannel:channel];
- }
- ///获取服务器配置 appver:如果不需要根据版本判断可以串0 lastver:每次全新获取传0
- void configSync(const char *appVer, int lastVer) {
- [admobHelper configSyncWithAppVer:appVer lastVer:lastVer];
- }
-
- void configServerInfo() {
- [admobHelper configServerInfo];
- }
- ///兑换码兑换接口
- void dedeemConsume(const char *redeemCode) {
- [admobHelper dedeemConsumeWithRedeemCode:redeemCode];
- }
-
- ///根据渠道兑换码兑换接口
- void redeemConsume(const char *redeemCode, const char *channel) {
- [admobHelper redeemConsumeWithRedeemCode:redeemCode channel:channel];
- }
-
- ///根据渠道和用户ID兑换码兑换接口
- void redeemUserConsume(const char *redeemCode, const char *channel, const char *clientId) {
- [admobHelper redeemUserConsumeWithRedeemCode:redeemCode channel:channel clientId:clientId];
- }
- ///登录接口微信-游客 登录之后返回token,每次操作验证token 请求需要签名,返回数据无加密
- void userLogin(const char *markId, int type, const char *name, const char *icon) {
- [admobHelper userLoginWithMarkId:markId type:type name:name iconurlStr:icon];
- }
- ///获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密
- void userSync(const char *archive, int archiveVersion) {
- [admobHelper userSyncWithArchive:archive archiveVersion:archiveVersion];
- }
- // ///获取(提交)存档到服务器 1.每次启动游戏优先获取存档 2.当有需要更新的存档时提交服务器 3.文件流不加入签名 4.返回字符串编码为ascii 提交存档时服务器会默认覆盖以前的存档不会做其他判断 请求需要签名,返回数据有加密
- // void userSyncStream() {
- // [admobHelper ];
- // }
- ///心跳检测,判断当前客户端登陆是否有效 请求需要签名,返回数据无加密
- void userHeartbeat() {
- [admobHelper userHeartbeat];
- }
- ///用户下订接口,下单成功之后返回支付链接 -跳转支付页面
- void userOrder(const char *goodsId) {
- [admobHelper userOrderWithGoodsId:goodsId];
- }
- ///恢复购买,查看已完成的所有订单,以及消耗状态 请求需要签名,返回结果有加密
- void userResumepurchase() {
- [admobHelper userResumePurchase];
- }
- ///订单消耗 请求需要签名,返回结果有加密
- void userConsume(const char *goodsId, const char *orderId) {
- [admobHelper userConsumeWithGoodsId:goodsId orderId:orderId];
- }
- ///查询单个订单的状态 用来处理非消耗性商品,判断订单是否支付完成 返回结果有加密 Orderstatus - 0 未购买 1 已购买 未消耗 2 已购买 已消耗
- /// @param goodsId 商品ID
- /// @param orderId 订单ID
- void userQueryOrder(const char *goodsId, const char *orderId) {
- [admobHelper userQueryOrderWithGoodsId:goodsId orderId:orderId];
- }
- ///获取排行榜 用户信息
- void userLeaderboard() {
- [admobHelper userLeaderboard];
- }
- ///提交用户分数 返回用户排行榜信息,返回结果无加密
- void userUploadScore(int score, const char *info, const char *rankingId) {
- [admobHelper userUploadScoreWithScore:score info:info rankingId:rankingId];
- }
- ///获取用户自己的排名
- void userGetUserRank(const char *rankingId) {
- [admobHelper userGetUserRankWithRankingId:rankingId];
- }
-
- ///上报付费
- void payrecordSubmit() {
- [admobHelper payrecordSubmit];
- }
- // 校验内购票据
- void overseaPayAppleValidate(const char *receipt, const char *appleOrderId, const char *sku, const char *skuType, const char *price, const char *actId){
- [admobHelper overseaPayAppleValidateWithReceipt:receipt appleOrderId:appleOrderId sku:sku skuType:skuType price:price actId:actId];
- }
-
- ///提交用户关键信息,校验是否作弊
- void gamekeyinfoUpload(const char *info){
- [admobHelper gamekeyinfoUploadWithInfoJson:info];
- }
- ///获取后台配置所有的商品信息
- void GetGoodsList() {
- [admobHelper getAllGoods];
- }
-
- //@TODO:设备、权限
- /// 获取设备IDFA
- const char * GetDeviceIDFA() {
- return yl_cStringCopy([admobHelper getDeviceIDFA]);
- }
-
- const char * GetDeviceIDFV() {
- return yl_cStringCopy([admobHelper getDeviceIDFV]);
- }
-
- /// 获取设备UDID
- const char * GetDeviceUdid() {
- return yl_cStringCopy([admobHelper getDeviceUdid]);
- }
- /// 是否是异形屏
- BOOL IsAbnormityScreen() {
- return [admobHelper isAbnormityScreen];
- }
- /// 手机别名: 用户定义的名称
- const char * GetUserPhoneName() {
- return yl_cStringCopy([admobHelper getUserPhoneName]);
- }
-
- //获取网络商名称
- const char * GetCarrierName() {
- return yl_cStringCopy([admobHelper getCarrierName]);
- }
-
- //获取设备版本名称 例如:iPhone8,2
- const char * GetDeviceVersion() {
- return yl_cStringCopy([admobHelper getDeviceVersion]);
- }
- /// 获取设备系统版本
- const char * GetDeviceSystomVersion() {
- return yl_cStringCopy([admobHelper getDeviceSystomVersion]);
- }
- /// 获取设备信息
- const char * GetDeviceInfo() {
- return yl_cStringCopy([admobHelper getDeviceInfo]);
- }
- /// 获取设备网络状态
- const char * GetCurrentNetworkState() {
- return yl_cStringCopy([admobHelper getCurrentNetworkState]);
- }
-
- /// 申请/验证某个权限(异步方法,需要配合authComplateWithTypeName回调方法使用)
- /// @param typeInt 类型 0:Location-定位 1:Camera-相机 2:Photos-相册 3:Contacts-通讯录 4:Reminders-提醒事项 5:Calendar-日历 6:Microphone-麦克风 7:Health-健康 8:DataNetwork-数据网络 9:MediaLibrary-媒体与Apple Music
- void AuthorizeWithType(int typeInt){
- [admobHelper authorizeWithType:typeInt];
- }
- /// 验证是否拥有某个权限
- BOOL HasAuthorizeWithType(int typeInt){
- return [admobHelper hasAuthorizeWithType:typeInt];
- }
- //@TODO:工具方法
- /// 显示系统提示框,提示用户去设置对应权限
- /// @param title 标题
- /// @param message 消息
- /// @param cancel 取消按钮名称
- /// @param setting 设置按钮名称
- void ShowSettingAlertView(const char* title, const char* message, const char* cancel, const char* setting) {
- [admobHelper showAlertViewWithTitle:title msg:message cancel:cancel setting:setting];
- }
-
- void ShareToFacebook(const char* imagePath){
- [admobHelper shareToFacebookWithUrl:"" imagePath:imagePath];
- }
-
- void UploadPhoto(const char* imagePath, const char* title){
- [admobHelper shareImageToFacebookGamingWithImagePath:imagePath title:title];
- }
-
- void UploadVideo(const char* imagePath ,const char* title) {
- [admobHelper shareVideoToFacebookGamingWithImagePath:imagePath title:title];
- }
- void OpenFriendFinderDeepLink() {
- [admobHelper launchFacebookPlayerFinderDialog];
- }
-
-
- #if defined(__cplusplus)
- }
- #endif
- #pragma mark - 基础函数
- -(NSString *)cStrToNSString:(const char *)cStr {
- if (cStr == NULL) {
- return nil;
- }
- return [NSString stringWithCString:cStr encoding:NSUTF8StringEncoding];
- }
- @end
|