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

isWeChatInstalled on ios

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