提交 1af49519 authored 作者: JarvanMo's avatar JarvanMo

isWeChatInstalled on ios

上级 2f94fdde
#import <Flutter/Flutter.h> #import <Flutter/Flutter.h>
#import "FluwxMethods.h" #import "FluwxMethods.h"
#import "FluwxKeys.h" #import "FluwxKeys.h"
#import "FluwxWXApiHandler.h"
@class FluwxShareHandler; @class FluwxShareHandler;
@class FluwxResponseHandler; @class FluwxResponseHandler;
@class FluwxAuthHandler; @class FluwxAuthHandler;
@class FluwxWXApiHandler;
extern BOOL isWeChatRegistered; extern BOOL isWeChatRegistered;
...@@ -14,6 +18,7 @@ extern BOOL isWeChatRegistered; ...@@ -14,6 +18,7 @@ extern BOOL isWeChatRegistered;
FluwxShareHandler *_fluwxShareHandler; FluwxShareHandler *_fluwxShareHandler;
@private @private
FluwxAuthHandler *_fluwxAuthHandler; FluwxAuthHandler *_fluwxAuthHandler;
@private FluwxWXApiHandler *_fluwxWXApiHandler;
} }
@end @end
#import <fluwx/FluwxPlugin.h> #import <fluwx/FluwxPlugin.h>
#import "WXApi.h" #import "WXApi.h"
#import "StringUtil.h"
#import "../../../../../../ios/Classes/handler/FluwxShareHandler.h" #import "../../../../../../ios/Classes/handler/FluwxShareHandler.h"
#import "ImageSchema.h"
#import "FluwxResponseHandler.h"
#import "FluwxAuthHandler.h" #import "FluwxAuthHandler.h"
#import "FluwxWXApiHandler.h"
@implementation FluwxPlugin @implementation FluwxPlugin
...@@ -30,6 +29,7 @@ BOOL isWeChatRegistered = NO; ...@@ -30,6 +29,7 @@ BOOL isWeChatRegistered = NO;
if (self) { if (self) {
_fluwxShareHandler = [[FluwxShareHandler alloc] initWithRegistrar:registrar]; _fluwxShareHandler = [[FluwxShareHandler alloc] initWithRegistrar:registrar];
_fluwxAuthHandler = [[FluwxAuthHandler alloc] initWithRegistrar:registrar]; _fluwxAuthHandler = [[FluwxAuthHandler alloc] initWithRegistrar:registrar];
_fluwxWXApiHandler = [[FluwxWXApiHandler alloc] init];
} }
return self; return self;
...@@ -39,12 +39,12 @@ BOOL isWeChatRegistered = NO; ...@@ -39,12 +39,12 @@ BOOL isWeChatRegistered = NO;
if ([registerApp isEqualToString:call.method]) { if ([registerApp isEqualToString:call.method]) {
[self initWeChatIfNeeded:call result:result]; [_fluwxWXApiHandler registerApp:call result:result];
return; return;
} }
if ([unregisterApp isEqualToString:call.method]) { if([@"isWeChatInstalled" isEqualToString :call.method]){
[self initWeChatIfNeeded:call result:result]; [_fluwxWXApiHandler checkWeChatInstallation:call result:result];
return; return;
} }
...@@ -65,28 +65,6 @@ BOOL isWeChatRegistered = NO; ...@@ -65,28 +65,6 @@ BOOL isWeChatRegistered = NO;
} }
- (void)initWeChatIfNeeded:(FlutterMethodCall *)call result:(FlutterResult)result {
if (!call.arguments[fluwxKeyIOS]) {
result(@{fluwxKeyPlatform: fluwxKeyIOS, fluwxKeyResult: @NO});
return;
}
if (isWeChatRegistered) {
result(@{fluwxKeyPlatform: fluwxKeyIOS, fluwxKeyResult: @YES});
return;
}
NSString *appId = call.arguments[@"appId"];
if ([StringUtil isBlank:appId]) {
result([FlutterError errorWithCode:@"invalid app id" message:@"are you sure your app id is correct ? " details:appId]);
return;
}
isWeChatRegistered = [WXApi registerApp:appId];
result(@{fluwxKeyPlatform: fluwxKeyIOS, fluwxKeyResult: @(isWeChatRegistered)});
}
- (void)unregisterApp:(FlutterMethodCall *)call result:(FlutterResult)result { - (void)unregisterApp:(FlutterMethodCall *)call result:(FlutterResult)result {
......
...@@ -17,10 +17,11 @@ ...@@ -17,10 +17,11 @@
} }
- (void)handleAuth:(FlutterMethodCall *)call result:(FlutterResult)result { - (void)handleAuth:(FlutterMethodCall *)call result:(FlutterResult)result {
NSString *openId = call.arguments[@"openId"];
[WXApiRequestHandler sendAuthRequestScope:call.arguments[@"scope"] [WXApiRequestHandler sendAuthRequestScope:call.arguments[@"scope"]
State:call.arguments[@"state"] State:call.arguments[@"state"]
OpenID:call.arguments[@"openId"] OpenID:(openId == (id) [NSNull null]) ?nil:openId
InViewController:nil]; InViewController:nil];
} }
@end @end
\ No newline at end of file
...@@ -352,10 +352,10 @@ NSObject <FlutterPluginRegistrar> *_registrar; ...@@ -352,10 +352,10 @@ NSObject <FlutterPluginRegistrar> *_registrar;
- (NSArray *)formatAssets:(NSString *)originPath { - (NSArray *)formatAssets:(NSString *)originPath {
NSString *path = nil; NSString *path = nil;
NSString *packageName = @""; NSString *packageName = @"";
int from = [SCHEMA_ASSETS length]; NSInteger from = [SCHEMA_ASSETS length];
int to = [originPath length]; NSInteger to = [originPath length];
NSString *pathWithoutSchema = [originPath substringFromIndex:from toIndex:to]; NSString *pathWithoutSchema = [originPath substringFromIndex:from toIndex:to];
int indexOfPackage = [pathWithoutSchema lastIndexOfString:fluwxKeyPackage]; NSInteger indexOfPackage = [pathWithoutSchema lastIndexOfString:fluwxKeyPackage];
if (indexOfPackage != JavaNotFound) { if (indexOfPackage != JavaNotFound) {
path = [pathWithoutSchema substringFromIndex:0 toIndex:indexOfPackage]; path = [pathWithoutSchema substringFromIndex:0 toIndex:indexOfPackage];
......
...@@ -3,6 +3,11 @@ ...@@ -3,6 +3,11 @@
// //
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <Flutter/Flutter.h>
#import "FluwxKeys.h"
@interface FluwxWXApiHandler : NSObject @end @interface FluwxWXApiHandler : NSObject
\ No newline at end of file - (void)registerApp:(FlutterMethodCall *)call result:(FlutterResult)result;
- (void)checkWeChatInstallation:(FlutterMethodCall *)call result:(FlutterResult)result;
@end
\ No newline at end of file
...@@ -2,10 +2,42 @@ ...@@ -2,10 +2,42 @@
// Created by mo on 2018/8/23. // Created by mo on 2018/8/23.
// //
#import <WechatOpenSDK/WXApi.h>
#import "FluwxWXApiHandler.h" #import "FluwxWXApiHandler.h"
#import "StringUtil.h"
#import "FluwxPlugin.h"
#import "CallResults.h"
@implementation FluwxWXApiHandler { @implementation FluwxWXApiHandler
- (void)registerApp:(FlutterMethodCall *)call result:(FlutterResult)result {
if (!call.arguments[fluwxKeyIOS]) {
result(@{fluwxKeyPlatform: fluwxKeyIOS, fluwxKeyResult: @NO});
return;
}
if (isWeChatRegistered) {
result(@{fluwxKeyPlatform: fluwxKeyIOS, fluwxKeyResult: @YES});
return;
}
NSString *appId = call.arguments[@"appId"];
if ([StringUtil isBlank:appId]) {
result([FlutterError errorWithCode:@"invalid app id" message:@"are you sure your app id is correct ? " details:appId]);
return;
}
isWeChatRegistered = [WXApi registerApp:appId];
result(@{fluwxKeyPlatform: fluwxKeyIOS, fluwxKeyResult: @(isWeChatRegistered)});
}
- (void)checkWeChatInstallation:(FlutterMethodCall *)call result:(FlutterResult)result {
if (!isWeChatRegistered) {
result([FlutterError errorWithCode:resultErrorNeedWeChat message:@"please config wxapi first" details:nil]);
return;
}else{
result(@([WXApi isWXAppInstalled]));
}
} }
@end @end
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论