| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- // 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 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];
- }
- }
|