diff --git a/android/build.gradle b/android/build.gradle index 2d905b8..23b27fe 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -34,7 +34,7 @@ android { repositories { google() mavenCentral() - maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' } + maven { url 'https://devrepo.kakao.com:8088/nexus/content/groups/public/' } } dependencies { diff --git a/index.js b/index.js index c7c0cba..324677c 100644 --- a/index.js +++ b/index.js @@ -7,7 +7,7 @@ export const addFriend = id => { }; export const chat = id => { - return ARNKakaoChannel.chat(id); + return ARNKakaoChannel.chatNoPromise(id); }; export default { diff --git a/ios/ARNKakaoChannel.swift b/ios/ARNKakaoChannel.swift index 44947a7..5261fd2 100644 --- a/ios/ARNKakaoChannel.swift +++ b/ios/ARNKakaoChannel.swift @@ -14,19 +14,24 @@ import SafariServices @objc(ARNKakaoChannel) public class ARNKakaoChannel: NSObject { private var safariViewController: SFSafariViewController? - + public override init() { let appKey: String? = Bundle.main.object(forInfoDictionaryKey: "KAKAO_APP_KEY") as? String - KakaoSDKCommon.initSDK(appKey: appKey!) + KakaoSDK.initSDK(appKey: appKey!) } + @objc + static func requiresMainQueueSetup() -> Bool { + return true; + } + func presentSafari(url: URL, completion: @escaping (Bool) -> Void) -> Void { let queue = DispatchQueue(label: "KakaoChannel") self.safariViewController = SFSafariViewController(url: url) self.safariViewController?.modalTransitionStyle = .crossDissolve self.safariViewController?.modalPresentationStyle = .overCurrentContext - + queue.async { UIApplication.shared.open(url, options: [:], @@ -35,7 +40,7 @@ public class ARNKakaoChannel: NSObject { }) } } - + @objc(addFriend:resolve:reject:) func addFriend(_ friendId: NSString, resolver resolve: @escaping RCTPromiseResolveBlock, @@ -45,9 +50,8 @@ public class ARNKakaoChannel: NSObject { resolve(success); }) } - - @objc(chat:resolve:reject:) - func chat(_ friendId: NSString, + + @objc func chat(_ friendId: NSString, resolver resolve: @escaping RCTPromiseResolveBlock, rejector reject: @escaping RCTPromiseRejectBlock) -> Void { let url: URL? = TalkApi.shared.makeUrlForChannelChat(channelPublicId: friendId as String) @@ -55,5 +59,11 @@ public class ARNKakaoChannel: NSObject { resolve(success); }) } + + @objc func chatNoPromise(_ friendId: NSString) -> Void { + let url: URL? = TalkApi.shared.makeUrlForChannelChat(channelPublicId: friendId as String) + self.presentSafari(url: url!, completion: { success in + }) + } } diff --git a/ios/ARNKakaoChannelBridge.h b/ios/ARNKakaoChannelBridge.h index 1ec9b90..c04f501 100644 --- a/ios/ARNKakaoChannelBridge.h +++ b/ios/ARNKakaoChannelBridge.h @@ -11,7 +11,7 @@ #import -@interface ARNKakaoLoginBridge: NSObject +@interface ARNKakaoChannelBridge: NSObject @end #endif /* ARNKakaoChannelBridge_h */ diff --git a/ios/ARNKakaoChannelBridge.m b/ios/ARNKakaoChannelBridge.m index a9a308c..f0da574 100644 --- a/ios/ARNKakaoChannelBridge.m +++ b/ios/ARNKakaoChannelBridge.m @@ -11,12 +11,14 @@ @interface RCT_EXTERN_MODULE(ARNKakaoChannel, NSObject) +RCT_EXTERN_METHOD(chatNoPromise: (NSString *) friendId); + RCT_EXTERN_METHOD(addFriend: (NSString *) friendId resolver: (RCTPromiseResolveBlock *)resolve rejecter: (RCTPromiseRejectBlock *)reject); RCT_EXTERN_METHOD(chat: (NSString *) friendId - resolver: (RCTPromiseResolveBlock *)resolve - rejecter: (RCTPromiseRejectBlock *)reject); + resolver: (RCTPromiseResolveBlock)resolve + rejecter: (RCTPromiseRejectBlock)reject); @end