powerfun-unity/Assets/Plugins/iOS/IOSWechatController.m

89 lines
2.6 KiB
Objective-C

//
// IOSWechatController.m
// Unity-iPhone
//
// Created by Jooki Tsui on 2020/11/13.
//
#import "WXApi.h"
#import "UnityAppController.h"
#import <Foundation/Foundation.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <FBSDKShareKit/FBSDKShareKit.h>
#import <FBSDKGamingServicesKit/FBSDKGamingServicesKit.h>
#import <Foundation/NSJSONSerialization.h>
@import Firebase;
@import GoogleSignIn;
extern void UnitySendMessage(const char *,const char *,const char *);
@interface IOSWechatController : UnityAppController<WXApiDelegate>
@end
IMPL_APP_CONTROLLER_SUBCLASS (IOSWechatController)
@implementation IOSWechatController
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity
#if defined(__IPHONE_12_0) || defined(__TVOS_12_0)
restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring> > * _Nullable restorableObjects))restorationHandler
#else
restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
#endif
{
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
if([url.absoluteString containsString:@"fb1291883451314488powerfunx"]){
[[FBSDKApplicationDelegate sharedInstance] application:application openURL:url options:options];
return YES;
}else{
return [WXApi handleOpenURL:url delegate:self];
}
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//google登录
[FIRApp configure];
}
- (void)onResp:(BaseResp *)resp
{
NSLog(@"47");
if([resp isKindOfClass:[SendAuthResp class]])
{
SendAuthResp *temp = (SendAuthResp*)resp;
int errorCode = temp.errCode;
switch (errorCode) {
case 0:
UnitySendMessage("LoginPanel", "OnMobileWxLoginResp",[NSString stringWithFormat:@"true;%@",temp.code ].UTF8String);
break;
case -2:
UnitySendMessage("LoginPanel", "OnMobileWxLoginResp", "false;User deauthorisation");
break;
case -4:
UnitySendMessage("LoginPanel", "OnMobileWxLoginResp", "false;User refusal of authorisation");
break;
default:
UnitySendMessage("LoginPanel", "OnMobileWxLoginResp", "false;Login failed");
break;
}
}
}
- (void)onReq:(BaseReq *)req
{
// do something
}
@end