1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee
react-native-wechat/ios/RNWechat.m

75 lines
1.9 KiB
Mathematica
Raw Normal View History

2020-07-31 14:47:29 +08:00
#import "RNWechat.h"
2020-08-01 18:05:40 +08:00
// Define error messages
#define INVOKE_FAILED (@"WeChat API invoke returns false.")
@implementation RNWechat {
BOOL *_api;
}
2020-07-31 14:47:29 +08:00
RCT_EXPORT_MODULE()
2020-08-01 18:05:40 +08:00
- (instancetype)init {
self = [super init];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleOpenURL:) name:@"RCTOpenURLNotification" object:nil];
}
return self;
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (BOOL)handleOpenURL:(NSNotification *)aNotification
{
NSString * aURLString = [aNotification userInfo][@"url"];
NSURL * aURL = [NSURL URLWithString:aURLString];
if ([WXApi handleOpenURL:aURL delegate:self])
{
return YES;
} else {
return NO;
}
}
2020-07-31 14:47:29 +08:00
2020-08-01 18:05:40 +08:00
- (dispatch_queue_t)methodQueue
2020-07-31 14:47:29 +08:00
{
2020-08-01 18:05:40 +08:00
return dispatch_get_main_queue();
}
+ (BOOL)requiresMainQueueSetup {
return YES;
}
// appid
2020-08-01 19:44:52 +08:00
RCT_REMAP_METHOD(registerApp, :(NSString *)appid :(NSString *)universalLink resolver: (RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
if ([WXApi registerApp: appid universalLink: universalLink]) {
self.appId = appid;
2020-08-01 18:05:40 +08:00
resolve(@[[NSNull null]]);
} else {
reject(@"-10404", INVOKE_FAILED, nil);
}
2020-07-31 14:47:29 +08:00
}
2020-08-01 19:44:52 +08:00
// , YESNO
RCT_REMAP_METHOD(isWXAppInstalled, :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject) {
if ([WXApi isWXAppInstalled]) {
resolve(@YES);
} else {
resolve(@NO);
}
}
2020-08-01 19:47:56 +08:00
// OpenApiYESNO
RCT_REMAP_METHOD(isWXAppSupportApi, resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
if ([WXApi isWXAppSupportApi]) {
resolve(@YES);
} else {
resolve(@NO);
}
}
2020-07-31 14:47:29 +08:00
@end