| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- // MyAppController.mm
-
-
- #import "WXApi.h"
- #import "UnityAppController.h"
-
- typedef void (*WXResultHandler) (const char *object);
- static WXResultHandler wxHandler;
- @interface MyAppController : UnityAppController < WXApiDelegate >
- @end
-
- IMPL_APP_CONTROLLER_SUBCLASS (MyAppController)
-
- @implementation MyAppController
-
- - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
- {
- [super application:application didFinishLaunchingWithOptions:launchOptions];
- // TODO
-
- NSString *weichatId = [NSString stringWithFormat:@"%s", "wxfe29f3f64e3c5d16"];
-
- BOOL installed = [WXApi isWXAppInstalled];
- NSLog(@"installed result: %@", installed?@"true":@"false");
-
- BOOL result = [WXApi registerApp:weichatId universalLink:(@"https://xmjssvr.cn/BowArrow/")];
-
- NSLog(@"result: %@", result?@"true":@"false");
-
- NSLog(@"result: %@",@"didFinishLaunchingWithOptions MyAppController初始化");
- return YES;
- }
- // - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
- // {
- // [super application:application didFinishLaunchingWithOptions:launchOptions];
- // // 启动微信SDK日志
- // [WXApi startLogByLevel:WXLogLevelDetail logBlock:^(NSString *log) {
- // NSLog(@"WeChatSDK: %@", log);
- // }];
- // NSString *weichatId = [NSString stringWithFormat:@"%s", "wxfe29f3f64e3c5d16"];
- // NSString *universalLink = @"https://xmjssvr.cn/BowArrow/";
- // BOOL installed = [WXApi isWXAppInstalled];
- // NSLog(@"installed result: %@", installed ? @"true" : @"false");
- // // 注册微信App
- // BOOL result = [WXApi registerApp:weichatId universalLink:universalLink];
- // NSLog(@"registerApp result: %@", result ? @"true" : @"false");
- // // 检查UniversalLink是否配置正确
- // [WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult* result) {
- // NSLog(@"ULCheck Step: %ld, success: %d, error: %@, suggestion: %@", (long)step, result.success, result.errorInfo, result.suggestion);
- // }];
- // NSLog(@"MyAppController 初始化完成");
- // return YES;
- // }
-
- // - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
- // NSLog(@"result: %@",@"handleOpenURL 执行");
- // return [WXApi handleOpenURL:url delegate:self];
- // }
- - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
- NSLog(@"result: %@",@"openURL options 执行");
- return [WXApi handleOpenURL:url delegate:self];
- }
-
- // - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
- // NSLog(@"result: %@",@"openURL 执行");
- // return [WXApi handleOpenURL:url delegate:self];
- // }
-
- - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
- {
- NSLog(@"result: %@",@"continueUserActivity 执行");
- return [WXApi handleOpenUniversalLink:userActivity delegate:self];
- }
-
-
- - (void)onResp:(BaseResp *)resp {
- // TODO 微信回调,调用微信SDK的sendReq,会回调此方法,登录、分享等都是回调到这里
- if([resp isKindOfClass:[SendAuthResp class]])
- {
- SendAuthResp *temp = (SendAuthResp*)resp;
- int errorCode = temp.errCode;
- switch (errorCode) {
- case 0:
- {
- NSString* str =@"0;";
- NSString* str1=[str stringByAppendingString: temp.code];
-
- //callUnity("WXLoginCallback",[str1 UTF8String]);
- wxHandler([str1 UTF8String]);
- break;
- }
- case -2:
- //callUnity("WXLoginCallback","-2;用户取消");
- wxHandler("-2;用户取消");
- break;
- case -4:
- //callUnity("WXLoginCallback","-4;用户拒绝授权");
- wxHandler("-4;用户拒绝授权");
- break;
- default:
- //callUnity("WXLoginCallback","-1;登录失败");
- wxHandler("-1;登录失败");
- break;
- }
- }
- }
-
- - (void)onReq:(BaseReq *)req {
- // TODO 微信回调,从微信端主动发送过来的请求
- }
-
-
- @end
- #pragma mark - 接口
- // 为回避C++命名粉碎,以C linkage进行声明
- extern "C" {
- //微信登录
- void _WechatLogin(WXResultHandler resultHandler)
- {
- wxHandler = resultHandler;
- if([WXApi isWXAppInstalled] ==false)
- {
- NSLog(@"请先安装微信客户端");
- return;
- }
- //登录
- SendAuthReq* req = [[SendAuthReq alloc] init];
- req.scope = @"snsapi_userinfo";
- req.state = [NSString stringWithFormat:@"%s", "wechat_sdk"];
- //[WXApi sendReq:req];
- [WXApi sendReq:req completion:^(BOOL success) { NSLog(@"唤起微信:%@", success ? @"成功" : @"失败"); }];
- }
-
- //判断是否安装微信
- bool IsWechatInstalled_iOS()
- {
- return [WXApi isWXAppInstalled];
- }
- }
|