@react-native-kakao/share 0.10.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/net/mjstudio/rnkakao/share/RNCKakaoShareModule.kt +66 -7
- package/android/src/oldarch/KakaoShareSpec.kt +11 -1
- package/ios/RNCKakaoShare.mm +11 -6
- package/ios/RNCKakaoShareManager.swift +51 -33
- package/lib/commonjs/index.js +8 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/spec/NativeKakaoShare.js.map +1 -1
- package/lib/module/index.js +7 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/spec/NativeKakaoShare.js.map +1 -1
- package/lib/typescript/src/index.d.ts +6 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/spec/NativeKakaoShare.d.ts +2 -0
- package/lib/typescript/src/spec/NativeKakaoShare.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/index.tsx +20 -3
- package/src/spec/NativeKakaoShare.ts +9 -1
|
@@ -1,15 +1,74 @@
|
|
|
1
1
|
package net.mjstudio.rnkakao.share
|
|
2
2
|
|
|
3
|
+
import android.content.ActivityNotFoundException
|
|
4
|
+
import com.facebook.react.bridge.Promise
|
|
3
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.bridge.ReactMethod
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap
|
|
8
|
+
import com.kakao.sdk.common.util.KakaoCustomTabsClient
|
|
9
|
+
import com.kakao.sdk.share.ShareClient
|
|
10
|
+
import com.kakao.sdk.share.WebSharerClient
|
|
11
|
+
import net.mjstudio.rnkakao.core.util.rejectWith
|
|
4
12
|
|
|
5
13
|
class RNCKakaoShareModule internal constructor(context: ReactApplicationContext) :
|
|
6
|
-
|
|
14
|
+
KakaoShareSpec(context) {
|
|
7
15
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
16
|
+
override fun getName(): String {
|
|
17
|
+
return NAME
|
|
18
|
+
}
|
|
11
19
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
@ReactMethod
|
|
21
|
+
override fun shareCustom(
|
|
22
|
+
templateId: Double,
|
|
23
|
+
useWebBrowserIfKakaoTalkNotAvailable: Boolean,
|
|
24
|
+
templateArgs: ReadableMap?,
|
|
25
|
+
serverCallbackArgs: ReadableMap?,
|
|
26
|
+
promise: Promise,
|
|
27
|
+
) {
|
|
28
|
+
val context = currentActivity
|
|
29
|
+
if (context == null) {
|
|
30
|
+
promise.rejectWith(ActivityNotFoundException())
|
|
31
|
+
return
|
|
32
|
+
}
|
|
33
|
+
if (ShareClient.instance.isKakaoTalkSharingAvailable(context)) {
|
|
34
|
+
ShareClient.instance.shareCustom(context, templateId.toLong()) { sharingResult, error ->
|
|
35
|
+
if (error != null) {
|
|
36
|
+
promise.rejectWith(error)
|
|
37
|
+
} else if (sharingResult != null) {
|
|
38
|
+
context.startActivity(sharingResult.intent)
|
|
39
|
+
promise.resolve(42)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
} else if (useWebBrowserIfKakaoTalkNotAvailable) {
|
|
43
|
+
val sharerUrl = WebSharerClient.instance.makeCustomUrl(templateId.toLong())
|
|
44
|
+
|
|
45
|
+
// CustomTabs으로 웹 브라우저 열기
|
|
46
|
+
|
|
47
|
+
// 1. CustomTabsServiceConnection 지원 브라우저 열기
|
|
48
|
+
// ex) Chrome, 삼성 인터넷, FireFox, 웨일 등
|
|
49
|
+
try {
|
|
50
|
+
KakaoCustomTabsClient.openWithDefault(context, sharerUrl)
|
|
51
|
+
promise.resolve(42)
|
|
52
|
+
return
|
|
53
|
+
} catch (e: UnsupportedOperationException) { // CustomTabsServiceConnection 지원 브라우저가 없을 때 예외처리
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// 2. CustomTabsServiceConnection 미지원 브라우저 열기
|
|
57
|
+
// ex) 다음, 네이버 등
|
|
58
|
+
try {
|
|
59
|
+
KakaoCustomTabsClient.open(context, sharerUrl)
|
|
60
|
+
promise.resolve(42)
|
|
61
|
+
return
|
|
62
|
+
} catch (e: ActivityNotFoundException) { // 디바이스에 설치된 인터넷 브라우저가 없을 때 예외처리
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
promise.rejectWith("web url open failed $sharerUrl")
|
|
66
|
+
} else {
|
|
67
|
+
promise.rejectWith("kakaotalk not available")
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
companion object {
|
|
72
|
+
const val NAME = "RNCKakaoShare"
|
|
73
|
+
}
|
|
15
74
|
}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
package net.mjstudio.rnkakao.share
|
|
2
2
|
|
|
3
|
+
import com.facebook.react.bridge.Promise
|
|
3
4
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
5
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
6
|
+
import com.facebook.react.bridge.ReadableMap
|
|
5
7
|
|
|
6
8
|
abstract class KakaoShareSpec internal constructor(context: ReactApplicationContext) :
|
|
7
|
-
ReactContextBaseJavaModule(context)
|
|
9
|
+
ReactContextBaseJavaModule(context) {
|
|
10
|
+
abstract fun shareCustom(
|
|
11
|
+
templateId: Double,
|
|
12
|
+
useWebBrowserIfKakaoTalkNotAvailable: Boolean,
|
|
13
|
+
templateArgs: ReadableMap?,
|
|
14
|
+
serverCallbackArgs: ReadableMap?,
|
|
15
|
+
promise: Promise,
|
|
16
|
+
)
|
|
17
|
+
}
|
package/ios/RNCKakaoShare.mm
CHANGED
|
@@ -9,14 +9,19 @@
|
|
|
9
9
|
|
|
10
10
|
RCT_EXPORT_MODULE()
|
|
11
11
|
|
|
12
|
-
RCT_EXPORT_METHOD(
|
|
13
|
-
: (double)
|
|
14
|
-
: (
|
|
12
|
+
RCT_EXPORT_METHOD(shareCustom
|
|
13
|
+
: (double)templateId useWebBrwoserIfKakaoTalkNotAvailable
|
|
14
|
+
: (BOOL)useWebBrowserIfKakaoTalkNotAvailable templateArgs
|
|
15
|
+
: (NSDictionary*)templateArgs serverCallbackArgs
|
|
16
|
+
: (NSDictionary*)serverCallbackArgs resolve
|
|
15
17
|
: (RCTPromiseResolveBlock)resolve reject
|
|
16
18
|
: (RCTPromiseRejectBlock)reject) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
[[self manager] shareCustom:(NSInteger)templateId
|
|
20
|
+
useWebBrowserIfKakaoTalkNotAvailable:useWebBrowserIfKakaoTalkNotAvailable
|
|
21
|
+
templateArgs:templateArgs
|
|
22
|
+
serverCallbackArgs:serverCallbackArgs
|
|
23
|
+
resolve:resolve
|
|
24
|
+
reject:reject];
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
// Don't compile this code when we build for the old architecture.
|
|
@@ -1,41 +1,59 @@
|
|
|
1
1
|
import Foundation
|
|
2
2
|
import KakaoSDKShare
|
|
3
|
+
import React
|
|
4
|
+
import RNCKakaoCore
|
|
5
|
+
import SafariServices
|
|
3
6
|
|
|
4
7
|
@objc public class RNCKakaoShareManager: NSObject {
|
|
5
8
|
@objc public static let shared = RNCKakaoShareManager()
|
|
6
9
|
|
|
7
|
-
@objc public func
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
10
|
+
@objc public func shareCustom(
|
|
11
|
+
_ templateId: Int64,
|
|
12
|
+
useWebBrowserIfKakaoTalkNotAvailable: Bool,
|
|
13
|
+
templateArgs: [String: String],
|
|
14
|
+
serverCallbackArgs: [String: String],
|
|
15
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
16
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
17
|
+
) {
|
|
18
|
+
// 카카오톡 설치여부 확인
|
|
19
|
+
if ShareApi.isKakaoTalkSharingAvailable() {
|
|
20
|
+
// 카카오톡으로 카카오톡 공유 가능
|
|
21
|
+
ShareApi.shared.shareCustom(
|
|
22
|
+
templateId: templateId,
|
|
23
|
+
templateArgs: templateArgs,
|
|
24
|
+
serverCallbackArgs: serverCallbackArgs
|
|
25
|
+
) { sharingResult, error in
|
|
26
|
+
if let error {
|
|
27
|
+
RNCKakaoUtil.reject(reject, error)
|
|
28
|
+
} else if let sharingResult {
|
|
29
|
+
UIApplication.shared.open(sharingResult.url, options: [:]) { success in
|
|
30
|
+
if success {
|
|
31
|
+
resolve(42)
|
|
32
|
+
} else {
|
|
33
|
+
RNCKakaoUtil.reject(reject, "sharingResult url open failed \(sharingResult.url)")
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
} else {
|
|
37
|
+
RNCKakaoUtil.reject(reject, "sharingResult url not found")
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
} else if useWebBrowserIfKakaoTalkNotAvailable {
|
|
41
|
+
if let url = ShareApi.shared.makeCustomUrl(
|
|
42
|
+
templateId: templateId,
|
|
43
|
+
templateArgs: templateArgs,
|
|
44
|
+
serverCallbackArgs: serverCallbackArgs
|
|
45
|
+
) {
|
|
46
|
+
let safariViewController = SFSafariViewController(url: url)
|
|
47
|
+
safariViewController.modalTransitionStyle = .crossDissolve
|
|
48
|
+
safariViewController.modalPresentationStyle = .overCurrentContext
|
|
49
|
+
RNCKakaoUtil.presentViewController(safariViewController) {
|
|
50
|
+
resolve(42)
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
RNCKakaoUtil.reject(reject, "makeCustomUrl failed")
|
|
54
|
+
}
|
|
55
|
+
} else {
|
|
56
|
+
RNCKakaoUtil.reject(reject, "kakaotalk not available")
|
|
57
|
+
}
|
|
40
58
|
}
|
|
41
59
|
}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.shareCustom = shareCustom;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
const LINKING_ERROR = "The package '@react-native-kakao/share' doesn't seem to be linked. Make sure: \n\n" + _reactNative.Platform.select({
|
|
9
9
|
ios: "- You have run 'pod install'\n",
|
|
@@ -18,7 +18,12 @@ const Native = Module ? Module : new Proxy({}, {
|
|
|
18
18
|
throw new Error(LINKING_ERROR);
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
function
|
|
22
|
-
|
|
21
|
+
function shareCustom({
|
|
22
|
+
templateId,
|
|
23
|
+
useWebBrowserIfKakaoTalkNotAvailable = true,
|
|
24
|
+
serverCallbackArgs = {},
|
|
25
|
+
templateArgs = {}
|
|
26
|
+
}) {
|
|
27
|
+
return Native.shareCustom(templateId, useWebBrowserIfKakaoTalkNotAvailable, templateArgs, serverCallbackArgs);
|
|
23
28
|
}
|
|
24
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","RNCKakaoShare","Native","Proxy","get","Error","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","RNCKakaoShare","Native","Proxy","get","Error","shareCustom","templateId","useWebBrowserIfKakaoTalkNotAvailable","serverCallbackArgs","templateArgs"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIA,MAAMC,aAAa,GACjB,oFAAoF,GACpFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,MAAM,GAAGH,oBAAoB,GAC/BN,OAAO,CAAC,yBAAyB,CAAC,CAACK,OAAO,GAC1CK,0BAAa,CAACC,aAAa;AAE/B,MAAMC,MAAY,GAAGH,MAAM,GACvBA,MAAM,GACN,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACd,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEE,SAASe,WAAWA,CAAC;EAC1BC,UAAU;EACVC,oCAAoC,GAAG,IAAI;EAC3CC,kBAAkB,GAAG,CAAC,CAAC;EACvBC,YAAY,GAAG,CAAC;AAMlB,CAAC,EAAE;EACD,OAAOR,MAAM,CAACI,WAAW,CACvBC,UAAU,EACVC,oCAAoC,EACpCE,YAAY,EACZD,kBACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoShare.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoShare.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAYpCC,gCAAmB,CAACC,YAAY,CAAO,eAAe,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -12,7 +12,12 @@ const Native = Module ? Module : new Proxy({}, {
|
|
|
12
12
|
throw new Error(LINKING_ERROR);
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
|
-
export function
|
|
16
|
-
|
|
15
|
+
export function shareCustom({
|
|
16
|
+
templateId,
|
|
17
|
+
useWebBrowserIfKakaoTalkNotAvailable = true,
|
|
18
|
+
serverCallbackArgs = {},
|
|
19
|
+
templateArgs = {}
|
|
20
|
+
}) {
|
|
21
|
+
return Native.shareCustom(templateId, useWebBrowserIfKakaoTalkNotAvailable, templateArgs, serverCallbackArgs);
|
|
17
22
|
}
|
|
18
23
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","RNCKakaoShare","Native","Proxy","get","Error","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","RNCKakaoShare","Native","Proxy","get","Error","shareCustom","templateId","useWebBrowserIfKakaoTalkNotAvailable","serverCallbackArgs","templateArgs"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAItD,MAAMC,aAAa,GACjB,oFAAoF,GACpFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,MAAM,GAAGH,oBAAoB,GAC/BI,OAAO,CAAC,yBAAyB,CAAC,CAACL,OAAO,GAC1CL,aAAa,CAACW,aAAa;AAE/B,MAAMC,MAAY,GAAGH,MAAM,GACvBA,MAAM,GACN,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACb,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,SAASc,WAAWA,CAAC;EAC1BC,UAAU;EACVC,oCAAoC,GAAG,IAAI;EAC3CC,kBAAkB,GAAG,CAAC,CAAC;EACvBC,YAAY,GAAG,CAAC;AAMlB,CAAC,EAAE;EACD,OAAOR,MAAM,CAACI,WAAW,CACvBC,UAAU,EACVC,oCAAoC,EACpCE,YAAY,EACZD,kBACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoShare.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoShare.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAYlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,eAAe,CAAC","ignoreList":[]}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
export declare function
|
|
1
|
+
export declare function shareCustom({ templateId, useWebBrowserIfKakaoTalkNotAvailable, serverCallbackArgs, templateArgs, }: {
|
|
2
|
+
templateId: number;
|
|
3
|
+
useWebBrowserIfKakaoTalkNotAvailable?: boolean;
|
|
4
|
+
templateArgs?: Record<string, string>;
|
|
5
|
+
serverCallbackArgs?: Record<string, string>;
|
|
6
|
+
}): Promise<void>;
|
|
2
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AA4BA,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EACV,oCAA2C,EAC3C,kBAAuB,EACvB,YAAiB,GAClB,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C,iBAOA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
|
+
import type { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
|
|
2
3
|
export interface Spec extends TurboModule {
|
|
4
|
+
shareCustom(templateId: Int32, useWebBrowserIfKakaoTalkNotAvailable: boolean, templateArgs: UnsafeObject, serverCallbackArgs: UnsafeObject): Promise<void>;
|
|
3
5
|
}
|
|
4
6
|
declare const _default: Spec;
|
|
5
7
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeKakaoShare.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeKakaoShare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeKakaoShare.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeKakaoShare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAErF,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,CACT,UAAU,EAAE,KAAK,EACjB,oCAAoC,EAAE,OAAO,EAC7C,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,YAAY,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;;AAED,wBAAuE"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-kakao/share",
|
|
3
3
|
"description": "React Native Kakao Share SDK",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "1.0.2",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
7
7
|
"types": "lib/typescript/src/index.d.ts",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"access": "public"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@react-native-kakao/core": "^0.
|
|
61
|
+
"@react-native-kakao/core": "^1.0.2",
|
|
62
62
|
"@types/jest": "^29.5.5",
|
|
63
63
|
"@types/react": "^18.2.44",
|
|
64
64
|
"del-cli": "^5.1.0",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"typescript": "5.1.6"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
|
-
"@react-native-kakao/core": "^0.
|
|
72
|
+
"@react-native-kakao/core": "^1.0.2",
|
|
73
73
|
"react": "*",
|
|
74
74
|
"react-native": "*"
|
|
75
75
|
},
|
|
@@ -105,5 +105,5 @@
|
|
|
105
105
|
"javaPackageName": "net.mjstudio.rnkakao.share"
|
|
106
106
|
}
|
|
107
107
|
},
|
|
108
|
-
"gitHead": "
|
|
108
|
+
"gitHead": "ba5da3fc09a61f4797c0c35cb8b290839f0bfbca"
|
|
109
109
|
}
|
package/src/index.tsx
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { NativeModules, Platform } from 'react-native';
|
|
2
2
|
|
|
3
|
+
import type { Spec } from './spec/NativeKakaoShare';
|
|
4
|
+
|
|
3
5
|
const LINKING_ERROR =
|
|
4
6
|
"The package '@react-native-kakao/share' doesn't seem to be linked. Make sure: \n\n" +
|
|
5
7
|
Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
|
|
@@ -13,7 +15,7 @@ const Module = isTurboModuleEnabled
|
|
|
13
15
|
? require('./spec/NativeKakaoShare').default
|
|
14
16
|
: NativeModules.RNCKakaoShare;
|
|
15
17
|
|
|
16
|
-
const Native = Module
|
|
18
|
+
const Native: Spec = Module
|
|
17
19
|
? Module
|
|
18
20
|
: new Proxy(
|
|
19
21
|
{},
|
|
@@ -24,6 +26,21 @@ const Native = Module
|
|
|
24
26
|
},
|
|
25
27
|
);
|
|
26
28
|
|
|
27
|
-
export function
|
|
28
|
-
|
|
29
|
+
export function shareCustom({
|
|
30
|
+
templateId,
|
|
31
|
+
useWebBrowserIfKakaoTalkNotAvailable = true,
|
|
32
|
+
serverCallbackArgs = {},
|
|
33
|
+
templateArgs = {},
|
|
34
|
+
}: {
|
|
35
|
+
templateId: number;
|
|
36
|
+
useWebBrowserIfKakaoTalkNotAvailable?: boolean;
|
|
37
|
+
templateArgs?: Record<string, string>;
|
|
38
|
+
serverCallbackArgs?: Record<string, string>;
|
|
39
|
+
}) {
|
|
40
|
+
return Native.shareCustom(
|
|
41
|
+
templateId,
|
|
42
|
+
useWebBrowserIfKakaoTalkNotAvailable,
|
|
43
|
+
templateArgs,
|
|
44
|
+
serverCallbackArgs,
|
|
45
|
+
);
|
|
29
46
|
}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
2
|
import { TurboModuleRegistry } from 'react-native';
|
|
3
|
+
import type { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
|
|
3
4
|
|
|
4
|
-
export interface Spec extends TurboModule {
|
|
5
|
+
export interface Spec extends TurboModule {
|
|
6
|
+
shareCustom(
|
|
7
|
+
templateId: Int32,
|
|
8
|
+
useWebBrowserIfKakaoTalkNotAvailable: boolean,
|
|
9
|
+
templateArgs: UnsafeObject,
|
|
10
|
+
serverCallbackArgs: UnsafeObject,
|
|
11
|
+
): Promise<void>;
|
|
12
|
+
}
|
|
5
13
|
|
|
6
14
|
export default TurboModuleRegistry.getEnforcing<Spec>('RNCKakaoShare');
|