@react-native-kakao/navi 3.1.0-next.0 → 3.1.0-next.1
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/CHANGELOG.md +17 -0
- package/android/src/main/java/net/mjstudio/rnkakao/navi/RNCKakaoNaviModule.kt +26 -0
- package/ios/RNCKakaoNavi.mm +16 -0
- package/ios/RNCKakaoNaviManager.swift +48 -9
- package/lib/commonjs/index.js +24 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +16 -1
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/spec/NativeKakaoNavi.ts +13 -0
- package/lib/module/index.js +21 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +13 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/spec/NativeKakaoNavi.ts +13 -0
- package/lib/typescript/src/index.d.ts +8 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/spec/NativeKakaoNavi.d.ts +7 -0
- package/lib/typescript/src/spec/NativeKakaoNavi.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +34 -3
- package/src/index.web.ts +12 -2
- package/src/spec/NativeKakaoNavi.ts +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 3.1.0-next.1
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- dabddfa: Expose native navigation and destination-sharing URL builders without launching Kakao Navi.
|
|
8
|
+
- 1efca29: Expose Kakao Talk sharing availability and Kakao Navi installation checks on Android and iOS, with explicit false results on web.
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- Updated dependencies [d5c5fb8]
|
|
13
|
+
- Updated dependencies [3027207]
|
|
14
|
+
- Updated dependencies [dfd32ca]
|
|
15
|
+
- Updated dependencies [2b223bf]
|
|
16
|
+
- Updated dependencies [67cd4e2]
|
|
17
|
+
- Updated dependencies [d81f9b7]
|
|
18
|
+
- @react-native-kakao/core@3.1.0-next.1
|
|
19
|
+
|
|
3
20
|
## 3.1.0-next.0
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
|
@@ -31,6 +31,32 @@ import net.mjstudio.rnkakao.core.util.rejectWith
|
|
|
31
31
|
class RNCKakaoNaviModule internal constructor(
|
|
32
32
|
context: ReactApplicationContext,
|
|
33
33
|
) : NativeKakaoNaviSpec(context) {
|
|
34
|
+
@ReactMethod
|
|
35
|
+
override fun isKakaoNaviInstalled(promise: Promise) =
|
|
36
|
+
onMain {
|
|
37
|
+
promise.resolve(NaviClient.instance.isKakaoNaviInstalled(reactApplicationContext))
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@ReactMethod
|
|
41
|
+
override fun makeNaviUrl(
|
|
42
|
+
destination: ReadableMap,
|
|
43
|
+
isShare: Boolean,
|
|
44
|
+
option: ReadableMap?,
|
|
45
|
+
viaList: ReadableArray?,
|
|
46
|
+
promise: Promise,
|
|
47
|
+
) = onMain {
|
|
48
|
+
runCatching {
|
|
49
|
+
val stops = viaList?.filterIsReadableMap()?.map { it.toLocation() }
|
|
50
|
+
val intent =
|
|
51
|
+
if (isShare) {
|
|
52
|
+
NaviClient.instance.shareDestinationIntent(destination.toLocation(), option?.toOption(), stops)
|
|
53
|
+
} else {
|
|
54
|
+
NaviClient.instance.navigateIntent(destination.toLocation(), option?.toOption(), stops)
|
|
55
|
+
}
|
|
56
|
+
checkNotNull(intent.dataString) { "Failed to create Navi URL" }
|
|
57
|
+
}.onSuccess { promise.resolve(it) }.onFailure { promise.rejectWith(it) }
|
|
58
|
+
}
|
|
59
|
+
|
|
34
60
|
@ReactMethod
|
|
35
61
|
override fun navigateOrShareTo(
|
|
36
62
|
destination: ReadableMap,
|
package/ios/RNCKakaoNavi.mm
CHANGED
|
@@ -12,6 +12,22 @@
|
|
|
12
12
|
|
|
13
13
|
RCT_EXPORT_MODULE()
|
|
14
14
|
|
|
15
|
+
RCT_EXPORT_METHOD(isKakaoNaviInstalled : (RCTPromiseResolveBlock)
|
|
16
|
+
resolve reject : (RCTPromiseRejectBlock)reject) {
|
|
17
|
+
[[self manager] isKakaoNaviInstalled:resolve];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
RCT_EXPORT_METHOD(makeNaviUrl : (NSDictionary*)destination isShare : (BOOL)isShare option : (
|
|
21
|
+
NSDictionary*)option viaList : (NSArray*)viaList resolve : (RCTPromiseResolveBlock)
|
|
22
|
+
resolve reject : (RCTPromiseRejectBlock)reject) {
|
|
23
|
+
[[self manager] makeNaviUrl:destination
|
|
24
|
+
isShare:isShare
|
|
25
|
+
option:option
|
|
26
|
+
viaList:viaList
|
|
27
|
+
resolve:resolve
|
|
28
|
+
reject:reject];
|
|
29
|
+
}
|
|
30
|
+
|
|
15
31
|
RCT_EXPORT_METHOD(navigateOrShareTo : (NSDictionary*)destination option : (NSDictionary*)
|
|
16
32
|
option viaList : (NSArray*)viaList openWebInstallUrlIfNaviAppNotAvailable : (
|
|
17
33
|
NSNumber*)openWebInstallUrlIfNaviAppNotAvailable isShare : (NSNumber*)
|
|
@@ -2,10 +2,41 @@ import Foundation
|
|
|
2
2
|
import KakaoSDKNavi
|
|
3
3
|
import React
|
|
4
4
|
import RNCKakaoCore
|
|
5
|
+
import UIKit
|
|
6
|
+
|
|
7
|
+
private let naviUrlCreationErrorMessage = "Failed to create Navi URL"
|
|
5
8
|
|
|
6
9
|
@objc public class RNCKakaoNaviManager: NSObject {
|
|
7
10
|
@objc public static let shared = RNCKakaoNaviManager()
|
|
8
11
|
|
|
12
|
+
@objc public func isKakaoNaviInstalled(_ resolve: @escaping RCTPromiseResolveBlock) {
|
|
13
|
+
onMain {
|
|
14
|
+
resolve(UIApplication.shared.canOpenURL(URL(string: "kakaonavi-sdk://")!))
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@objc public func makeNaviUrl(
|
|
19
|
+
_ dest: [String: Any],
|
|
20
|
+
isShare: Bool,
|
|
21
|
+
option opts: [String: Any]?,
|
|
22
|
+
viaList via: [[String: Any]]?,
|
|
23
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
24
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
25
|
+
) {
|
|
26
|
+
onMain {
|
|
27
|
+
guard let url = createNaviUrl(
|
|
28
|
+
destination: dest,
|
|
29
|
+
option: opts,
|
|
30
|
+
viaList: via,
|
|
31
|
+
isShare: isShare
|
|
32
|
+
) else {
|
|
33
|
+
RNCKakaoUtil.reject(reject, RNCKakaoError.unknown(naviUrlCreationErrorMessage))
|
|
34
|
+
return
|
|
35
|
+
}
|
|
36
|
+
resolve(url.absoluteString)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
9
40
|
@objc public func navigateOrShareTo(
|
|
10
41
|
_ dest: [String: Any],
|
|
11
42
|
option opts: [String: Any]?,
|
|
@@ -16,16 +47,10 @@ import RNCKakaoCore
|
|
|
16
47
|
reject: @escaping RCTPromiseRejectBlock
|
|
17
48
|
) {
|
|
18
49
|
onMain {
|
|
19
|
-
guard let navigateUrl =
|
|
20
|
-
destination:
|
|
21
|
-
option: createOption(options: opts),
|
|
22
|
-
viaList: via?.map { createLocation($0) }
|
|
23
|
-
) : NaviApi.shared.navigateUrl(
|
|
24
|
-
destination: createLocation(dest),
|
|
25
|
-
option: createOption(options: opts),
|
|
26
|
-
viaList: via?.map { createLocation($0) }
|
|
50
|
+
guard let navigateUrl = createNaviUrl(
|
|
51
|
+
destination: dest, option: opts, viaList: via, isShare: isShare
|
|
27
52
|
) else {
|
|
28
|
-
RNCKakaoUtil.reject(reject, RNCKakaoError.unknown(
|
|
53
|
+
RNCKakaoUtil.reject(reject, RNCKakaoError.unknown(naviUrlCreationErrorMessage))
|
|
29
54
|
return
|
|
30
55
|
}
|
|
31
56
|
|
|
@@ -55,6 +80,20 @@ import RNCKakaoCore
|
|
|
55
80
|
}
|
|
56
81
|
}
|
|
57
82
|
|
|
83
|
+
private func createNaviUrl(
|
|
84
|
+
destination: [String: Any],
|
|
85
|
+
option: [String: Any]?,
|
|
86
|
+
viaList: [[String: Any]]?,
|
|
87
|
+
isShare: Bool
|
|
88
|
+
) -> URL? {
|
|
89
|
+
let destination = createLocation(destination)
|
|
90
|
+
let option = createOption(options: option)
|
|
91
|
+
let viaList = viaList?.map { createLocation($0) }
|
|
92
|
+
return isShare
|
|
93
|
+
? NaviApi.shared.shareUrl(destination: destination, option: option, viaList: viaList)
|
|
94
|
+
: NaviApi.shared.navigateUrl(destination: destination, option: option, viaList: viaList)
|
|
95
|
+
}
|
|
96
|
+
|
|
58
97
|
private func createOption(options: [String: Any]?) -> NaviOption? {
|
|
59
98
|
guard let options else { return nil }
|
|
60
99
|
|
package/lib/commonjs/index.js
CHANGED
|
@@ -4,10 +4,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
exports.getNavigateUrl = getNavigateUrl;
|
|
8
|
+
exports.getShareUrl = getShareUrl;
|
|
9
|
+
exports.isKakaoNaviInstalled = isKakaoNaviInstalled;
|
|
7
10
|
exports.navigateTo = navigateTo;
|
|
8
11
|
exports.shareTo = shareTo;
|
|
12
|
+
var _core = require("@react-native-kakao/core");
|
|
9
13
|
var _NativeKakaoNavi = _interopRequireDefault(require("./spec/NativeKakaoNavi"));
|
|
10
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function isKakaoNaviInstalled() {
|
|
16
|
+
return _NativeKakaoNavi.default.isKakaoNaviInstalled();
|
|
17
|
+
}
|
|
18
|
+
function getNavigateUrl(params) {
|
|
19
|
+
return makeNaviUrl(params, false);
|
|
20
|
+
}
|
|
21
|
+
function getShareUrl(params) {
|
|
22
|
+
return makeNaviUrl(params, true);
|
|
23
|
+
}
|
|
24
|
+
async function makeNaviUrl({
|
|
25
|
+
destination,
|
|
26
|
+
option,
|
|
27
|
+
viaList
|
|
28
|
+
}, isShare) {
|
|
29
|
+
(0, _core.kAssert)(viaList == null || viaList.length <= 3, 'viaList must contain at most 3 stops.');
|
|
30
|
+
return _NativeKakaoNavi.default.makeNaviUrl(destination, isShare, option, viaList);
|
|
31
|
+
}
|
|
11
32
|
function navigateTo({
|
|
12
33
|
destination,
|
|
13
34
|
option,
|
|
@@ -25,6 +46,9 @@ function shareTo({
|
|
|
25
46
|
return _NativeKakaoNavi.default.navigateOrShareTo(destination, option, viaList, openWebInstallUrlIfNaviAppNotAvailable ?? true, true);
|
|
26
47
|
}
|
|
27
48
|
const KakaoNavi = {
|
|
49
|
+
isKakaoNaviInstalled,
|
|
50
|
+
getNavigateUrl,
|
|
51
|
+
getShareUrl,
|
|
28
52
|
navigateTo,
|
|
29
53
|
shareTo
|
|
30
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_core","require","_NativeKakaoNavi","_interopRequireDefault","e","__esModule","default","isKakaoNaviInstalled","Native","getNavigateUrl","params","makeNaviUrl","getShareUrl","destination","option","viaList","isShare","kAssert","length","navigateTo","openWebInstallUrlIfNaviAppNotAvailable","navigateOrShareTo","shareTo","KakaoNavi","_default","exports"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAOA,IAAAC,gBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA4C,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQrC,SAASG,oBAAoBA,CAAA,EAAqB;EACvD,OAAOC,wBAAM,CAACD,oBAAoB,CAAC,CAAC;AACtC;AAEO,SAASE,cAAcA,CAACC,MAA4B,EAAmB;EAC5E,OAAOC,WAAW,CAACD,MAAM,EAAE,KAAK,CAAC;AACnC;AAEO,SAASE,WAAWA,CAACF,MAA4B,EAAmB;EACzE,OAAOC,WAAW,CAACD,MAAM,EAAE,IAAI,CAAC;AAClC;AAEA,eAAeC,WAAWA,CACxB;EAAEE,WAAW;EAAEC,MAAM;EAAEC;AAA8B,CAAC,EACtDC,OAAgB,EAChB;EACA,IAAAC,aAAO,EAACF,OAAO,IAAI,IAAI,IAAIA,OAAO,CAACG,MAAM,IAAI,CAAC,EAAE,uCAAuC,CAAC;EAExF,OAAOV,wBAAM,CAACG,WAAW,CAACE,WAAW,EAAEG,OAAO,EAAEF,MAAM,EAAEC,OAAO,CAAC;AAClE;AAEO,SAASI,UAAUA,CAAC;EACzBN,WAAW;EACXC,MAAM;EACNC,OAAO;EACPK;AAMF,CAAC,EAAoB;EACnB,OAAOZ,wBAAM,CAACa,iBAAiB,CAC7BR,WAAW,EACXC,MAAM,EACNC,OAAO,EACPK,sCAAsC,IAAI,IAAI,EAC9C,KACF,CAAC;AACH;AAEO,SAASE,OAAOA,CAAC;EACtBT,WAAW;EACXC,MAAM;EACNC,OAAO;EACPK;AAMF,CAAC,EAAoB;EACnB,OAAOZ,wBAAM,CAACa,iBAAiB,CAC7BR,WAAW,EACXC,MAAM,EACNC,OAAO,EACPK,sCAAsC,IAAI,IAAI,EAC9C,IACF,CAAC;AACH;AAEA,MAAMG,SAAS,GAAG;EAAEhB,oBAAoB;EAAEE,cAAc;EAAEG,WAAW;EAAEO,UAAU;EAAEG;AAAQ,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAC9EiB,SAAS","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.shareTo = exports.navigateTo = exports.default = void 0;
|
|
6
|
+
exports.shareTo = exports.navigateTo = exports.isKakaoNaviInstalled = exports.getShareUrl = exports.getNavigateUrl = exports.default = void 0;
|
|
7
7
|
var _jsUtil = require("@mj-studio/js-util");
|
|
8
8
|
var _core = require("@react-native-kakao/core");
|
|
9
9
|
function getVehicleType(v) {
|
|
@@ -58,6 +58,9 @@ function getRpOption(v) {
|
|
|
58
58
|
return 100;
|
|
59
59
|
}
|
|
60
60
|
const KakaoNavi = {
|
|
61
|
+
isKakaoNaviInstalled: async () => false,
|
|
62
|
+
getNavigateUrl: unsupportedUrlBuilder,
|
|
63
|
+
getShareUrl: unsupportedUrlBuilder,
|
|
61
64
|
navigateTo: async ({
|
|
62
65
|
viaList,
|
|
63
66
|
destination,
|
|
@@ -114,14 +117,26 @@ const KakaoNavi = {
|
|
|
114
117
|
}
|
|
115
118
|
}
|
|
116
119
|
};
|
|
120
|
+
async function unsupportedUrlBuilder() {
|
|
121
|
+
(0, _core.kCreateWebError)({
|
|
122
|
+
code: 'Package-UnsupportedPlatform',
|
|
123
|
+
message: 'The Kakao JavaScript SDK does not provide Navi URL builders.'
|
|
124
|
+
});
|
|
125
|
+
}
|
|
117
126
|
function isMobileBrowser() {
|
|
118
127
|
return /android|iphone|ipad|ipod/i.test(navigator.userAgent) || /macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints > 1;
|
|
119
128
|
}
|
|
120
129
|
const {
|
|
130
|
+
isKakaoNaviInstalled,
|
|
131
|
+
getNavigateUrl,
|
|
132
|
+
getShareUrl,
|
|
121
133
|
navigateTo,
|
|
122
134
|
shareTo
|
|
123
135
|
} = KakaoNavi;
|
|
124
136
|
exports.shareTo = shareTo;
|
|
125
137
|
exports.navigateTo = navigateTo;
|
|
138
|
+
exports.getShareUrl = getShareUrl;
|
|
139
|
+
exports.getNavigateUrl = getNavigateUrl;
|
|
140
|
+
exports.isKakaoNaviInstalled = isKakaoNaviInstalled;
|
|
126
141
|
var _default = exports.default = KakaoNavi;
|
|
127
142
|
//# sourceMappingURL=index.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_jsUtil","require","_core","getVehicleType","v","getRpOption","KakaoNavi","navigateTo","viaList","destination","option","kAssert","length","isMobileBrowser","Kakao","Navi","start","filterNonNullishKeys","name","x","y","rpflag","coordType","toLowerCase","vehicleType","undefined","rpOption","routeInfo","sX","startX","sY","startY","sAngle","startAngle","returnUri","viaPoints","map","e","shareTo","share","test","navigator","userAgent","maxTouchPoints","exports","_default","default"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAWA,SAASE,cAAcA,CAACC,CAAiC,EAAU;EACjE,IAAIA,CAAC,KAAK,OAAO,EAAE;IACjB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,QAAQ,EAAE;IAClB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,OAAO,EAAE;IACjB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,QAAQ,EAAE;IAClB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,OAAO,EAAE;IACjB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,OAAO,EAAE;IACjB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,UAAU,EAAE;IACpB,OAAO,CAAC;EACV;EAEA,OAAO,CAAC;AACV;AAEA,SAASC,WAAWA,CAACD,CAA8B,EAAU;EAC3D,IAAIA,CAAC,KAAK,MAAM,EAAE;IAChB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,MAAM,EAAE;IAChB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,UAAU,EAAE;IACpB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,QAAQ,EAAE;IAClB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,MAAM,EAAE;IAChB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,SAAS,EAAE;IACnB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,QAAQ,EAAE;IAClB,OAAO,CAAC;EACV;EAEA,IAAIA,CAAC,KAAK,aAAa,EAAE;IACvB,OAAO,GAAG;EACZ;EAEA,OAAO,GAAG;AACZ;AAEA,MAAME,SAAuB,GAAG;EAC9BC,UAAU,EAAE,MAAAA,CAAO;IAAEC,OAAO;IAAEC,WAAW;IAAEC;EAAO,CAAC,KAAK;IACtD,IAAAC,aAAO,EACLH,OAAO,GAAGA,OAAO,CAACI,MAAM,IAAI,CAAC,GAAG,IAAI,EACpC,0DACF,CAAC;IAED,IAAI,CAACC,eAAe,CAAC,CAAC,EAAE;MACtB,OAAO,KAAK;IACd;IAEA,IAAI;MACFC,KAAK,CAACC,IAAI,CAACC,KAAK,CACd,IAAAC,4BAAoB,EAAC;QACnBC,IAAI,EAAET,WAAW,CAACS,IAAI;QACtBC,CAAC,EAAEV,WAAW,CAACU,CAAC;QAChBC,CAAC,EAAEX,WAAW,CAACW,CAAC;QAChBC,MAAM,EAAEZ,WAAW,CAACY,MAAM;QAC1BC,SAAS,EAAEZ,MAAM,EAAEY,SAAS,EAAEC,WAAW,CAAC,CAAC;QAC3CC,WAAW,EAAEd,MAAM,EAAEc,WAAW,
|
|
1
|
+
{"version":3,"names":["_jsUtil","require","_core","getVehicleType","v","getRpOption","KakaoNavi","isKakaoNaviInstalled","getNavigateUrl","unsupportedUrlBuilder","getShareUrl","navigateTo","viaList","destination","option","kAssert","length","isMobileBrowser","Kakao","Navi","start","filterNonNullishKeys","name","x","y","rpflag","coordType","toLowerCase","vehicleType","undefined","rpOption","routeInfo","sX","startX","sY","startY","sAngle","startAngle","returnUri","viaPoints","map","e","shareTo","share","kCreateWebError","code","message","test","navigator","userAgent","maxTouchPoints","exports","_default","default"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,7 +27,20 @@ export interface KakaoNaviLocation {
|
|
|
27
27
|
rpflag?: string;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
export type KakaoNaviRouteParams = {
|
|
31
|
+
destination: KakaoNaviLocation;
|
|
32
|
+
option?: KakaoNaviOption;
|
|
33
|
+
viaList?: KakaoNaviLocation[];
|
|
34
|
+
};
|
|
35
|
+
|
|
30
36
|
export interface Spec extends TurboModule {
|
|
37
|
+
isKakaoNaviInstalled(): Promise<boolean>;
|
|
38
|
+
makeNaviUrl(
|
|
39
|
+
destination: UnsafeObject,
|
|
40
|
+
isShare: boolean,
|
|
41
|
+
option?: UnsafeObject,
|
|
42
|
+
viaList?: ReadonlyArray<UnsafeObject>,
|
|
43
|
+
): Promise<string>;
|
|
31
44
|
navigateOrShareTo(
|
|
32
45
|
destination: UnsafeObject,
|
|
33
46
|
option?: UnsafeObject,
|
package/lib/module/index.js
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { kAssert } from '@react-native-kakao/core';
|
|
3
4
|
import Native from './spec/NativeKakaoNavi';
|
|
5
|
+
export function isKakaoNaviInstalled() {
|
|
6
|
+
return Native.isKakaoNaviInstalled();
|
|
7
|
+
}
|
|
8
|
+
export function getNavigateUrl(params) {
|
|
9
|
+
return makeNaviUrl(params, false);
|
|
10
|
+
}
|
|
11
|
+
export function getShareUrl(params) {
|
|
12
|
+
return makeNaviUrl(params, true);
|
|
13
|
+
}
|
|
14
|
+
async function makeNaviUrl({
|
|
15
|
+
destination,
|
|
16
|
+
option,
|
|
17
|
+
viaList
|
|
18
|
+
}, isShare) {
|
|
19
|
+
kAssert(viaList == null || viaList.length <= 3, 'viaList must contain at most 3 stops.');
|
|
20
|
+
return Native.makeNaviUrl(destination, isShare, option, viaList);
|
|
21
|
+
}
|
|
4
22
|
export function navigateTo({
|
|
5
23
|
destination,
|
|
6
24
|
option,
|
|
@@ -18,6 +36,9 @@ export function shareTo({
|
|
|
18
36
|
return Native.navigateOrShareTo(destination, option, viaList, openWebInstallUrlIfNaviAppNotAvailable ?? true, true);
|
|
19
37
|
}
|
|
20
38
|
const KakaoNavi = {
|
|
39
|
+
isKakaoNaviInstalled,
|
|
40
|
+
getNavigateUrl,
|
|
41
|
+
getShareUrl,
|
|
21
42
|
navigateTo,
|
|
22
43
|
shareTo
|
|
23
44
|
};
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Native","
|
|
1
|
+
{"version":3,"names":["kAssert","Native","isKakaoNaviInstalled","getNavigateUrl","params","makeNaviUrl","getShareUrl","destination","option","viaList","isShare","length","navigateTo","openWebInstallUrlIfNaviAppNotAvailable","navigateOrShareTo","shareTo","KakaoNavi"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,0BAA0B;AAOlD,OAAOC,MAAM,MAAM,wBAAwB;AAQ3C,OAAO,SAASC,oBAAoBA,CAAA,EAAqB;EACvD,OAAOD,MAAM,CAACC,oBAAoB,CAAC,CAAC;AACtC;AAEA,OAAO,SAASC,cAAcA,CAACC,MAA4B,EAAmB;EAC5E,OAAOC,WAAW,CAACD,MAAM,EAAE,KAAK,CAAC;AACnC;AAEA,OAAO,SAASE,WAAWA,CAACF,MAA4B,EAAmB;EACzE,OAAOC,WAAW,CAACD,MAAM,EAAE,IAAI,CAAC;AAClC;AAEA,eAAeC,WAAWA,CACxB;EAAEE,WAAW;EAAEC,MAAM;EAAEC;AAA8B,CAAC,EACtDC,OAAgB,EAChB;EACAV,OAAO,CAACS,OAAO,IAAI,IAAI,IAAIA,OAAO,CAACE,MAAM,IAAI,CAAC,EAAE,uCAAuC,CAAC;EAExF,OAAOV,MAAM,CAACI,WAAW,CAACE,WAAW,EAAEG,OAAO,EAAEF,MAAM,EAAEC,OAAO,CAAC;AAClE;AAEA,OAAO,SAASG,UAAUA,CAAC;EACzBL,WAAW;EACXC,MAAM;EACNC,OAAO;EACPI;AAMF,CAAC,EAAoB;EACnB,OAAOZ,MAAM,CAACa,iBAAiB,CAC7BP,WAAW,EACXC,MAAM,EACNC,OAAO,EACPI,sCAAsC,IAAI,IAAI,EAC9C,KACF,CAAC;AACH;AAEA,OAAO,SAASE,OAAOA,CAAC;EACtBR,WAAW;EACXC,MAAM;EACNC,OAAO;EACPI;AAMF,CAAC,EAAoB;EACnB,OAAOZ,MAAM,CAACa,iBAAiB,CAC7BP,WAAW,EACXC,MAAM,EACNC,OAAO,EACPI,sCAAsC,IAAI,IAAI,EAC9C,IACF,CAAC;AACH;AAEA,MAAMG,SAAS,GAAG;EAAEd,oBAAoB;EAAEC,cAAc;EAAEG,WAAW;EAAEM,UAAU;EAAEG;AAAQ,CAAC;AAC5F,eAAeC,SAAS","ignoreList":[]}
|
package/lib/module/index.web.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { filterNonNullishKeys } from '@mj-studio/js-util';
|
|
4
|
-
import { kAssert } from '@react-native-kakao/core';
|
|
4
|
+
import { kAssert, kCreateWebError } from '@react-native-kakao/core';
|
|
5
5
|
function getVehicleType(v) {
|
|
6
6
|
if (v === 'First') {
|
|
7
7
|
return 1;
|
|
@@ -54,6 +54,9 @@ function getRpOption(v) {
|
|
|
54
54
|
return 100;
|
|
55
55
|
}
|
|
56
56
|
const KakaoNavi = {
|
|
57
|
+
isKakaoNaviInstalled: async () => false,
|
|
58
|
+
getNavigateUrl: unsupportedUrlBuilder,
|
|
59
|
+
getShareUrl: unsupportedUrlBuilder,
|
|
57
60
|
navigateTo: async ({
|
|
58
61
|
viaList,
|
|
59
62
|
destination,
|
|
@@ -110,10 +113,19 @@ const KakaoNavi = {
|
|
|
110
113
|
}
|
|
111
114
|
}
|
|
112
115
|
};
|
|
116
|
+
async function unsupportedUrlBuilder() {
|
|
117
|
+
kCreateWebError({
|
|
118
|
+
code: 'Package-UnsupportedPlatform',
|
|
119
|
+
message: 'The Kakao JavaScript SDK does not provide Navi URL builders.'
|
|
120
|
+
});
|
|
121
|
+
}
|
|
113
122
|
function isMobileBrowser() {
|
|
114
123
|
return /android|iphone|ipad|ipod/i.test(navigator.userAgent) || /macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints > 1;
|
|
115
124
|
}
|
|
116
125
|
export const {
|
|
126
|
+
isKakaoNaviInstalled,
|
|
127
|
+
getNavigateUrl,
|
|
128
|
+
getShareUrl,
|
|
117
129
|
navigateTo,
|
|
118
130
|
shareTo
|
|
119
131
|
} = KakaoNavi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["filterNonNullishKeys","kAssert","getVehicleType","v","getRpOption","KakaoNavi","navigateTo","viaList","destination","option","length","isMobileBrowser","Kakao","Navi","start","name","x","y","rpflag","coordType","toLowerCase","vehicleType","undefined","rpOption","routeInfo","sX","startX","sY","startY","sAngle","startAngle","returnUri","viaPoints","map","e","shareTo","share","test","navigator","userAgent","maxTouchPoints"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,oBAAoB;AACzD,SAASC,OAAO,QAAQ,0BAA0B;
|
|
1
|
+
{"version":3,"names":["filterNonNullishKeys","kAssert","kCreateWebError","getVehicleType","v","getRpOption","KakaoNavi","isKakaoNaviInstalled","getNavigateUrl","unsupportedUrlBuilder","getShareUrl","navigateTo","viaList","destination","option","length","isMobileBrowser","Kakao","Navi","start","name","x","y","rpflag","coordType","toLowerCase","vehicleType","undefined","rpOption","routeInfo","sX","startX","sY","startY","sAngle","startAngle","returnUri","viaPoints","map","e","shareTo","share","code","message","test","navigator","userAgent","maxTouchPoints"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,7 +27,20 @@ export interface KakaoNaviLocation {
|
|
|
27
27
|
rpflag?: string;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
export type KakaoNaviRouteParams = {
|
|
31
|
+
destination: KakaoNaviLocation;
|
|
32
|
+
option?: KakaoNaviOption;
|
|
33
|
+
viaList?: KakaoNaviLocation[];
|
|
34
|
+
};
|
|
35
|
+
|
|
30
36
|
export interface Spec extends TurboModule {
|
|
37
|
+
isKakaoNaviInstalled(): Promise<boolean>;
|
|
38
|
+
makeNaviUrl(
|
|
39
|
+
destination: UnsafeObject,
|
|
40
|
+
isShare: boolean,
|
|
41
|
+
option?: UnsafeObject,
|
|
42
|
+
viaList?: ReadonlyArray<UnsafeObject>,
|
|
43
|
+
): Promise<string>;
|
|
31
44
|
navigateOrShareTo(
|
|
32
45
|
destination: UnsafeObject,
|
|
33
46
|
option?: UnsafeObject,
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type { KakaoNaviLocation, KakaoNaviOption } from './spec/NativeKakaoNavi';
|
|
2
|
-
export type { KakaoNaviLocation, KakaoNaviOption } from './spec/NativeKakaoNavi';
|
|
1
|
+
import type { KakaoNaviLocation, KakaoNaviOption, KakaoNaviRouteParams } from './spec/NativeKakaoNavi';
|
|
2
|
+
export type { KakaoNaviLocation, KakaoNaviOption, KakaoNaviRouteParams, } from './spec/NativeKakaoNavi';
|
|
3
|
+
export declare function isKakaoNaviInstalled(): Promise<boolean>;
|
|
4
|
+
export declare function getNavigateUrl(params: KakaoNaviRouteParams): Promise<string>;
|
|
5
|
+
export declare function getShareUrl(params: KakaoNaviRouteParams): Promise<string>;
|
|
3
6
|
export declare function navigateTo({ destination, option, viaList, openWebInstallUrlIfNaviAppNotAvailable, }: {
|
|
4
7
|
destination: KakaoNaviLocation;
|
|
5
8
|
option?: KakaoNaviOption;
|
|
@@ -13,6 +16,9 @@ export declare function shareTo({ destination, option, viaList, openWebInstallUr
|
|
|
13
16
|
openWebInstallUrlIfNaviAppNotAvailable?: boolean;
|
|
14
17
|
}): Promise<boolean>;
|
|
15
18
|
declare const KakaoNavi: {
|
|
19
|
+
isKakaoNaviInstalled: typeof isKakaoNaviInstalled;
|
|
20
|
+
getNavigateUrl: typeof getNavigateUrl;
|
|
21
|
+
getShareUrl: typeof getShareUrl;
|
|
16
22
|
navigateTo: typeof navigateTo;
|
|
17
23
|
shareTo: typeof shareTo;
|
|
18
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzE;AAWD,wBAAgB,UAAU,CAAC,EACzB,WAAW,EACX,MAAM,EACN,OAAO,EACP,sCAAsC,GACvC,EAAE;IACD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,sCAAsC,CAAC,EAAE,OAAO,CAAC;CAClD,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnB;AAED,wBAAgB,OAAO,CAAC,EACtB,WAAW,EACX,MAAM,EACN,OAAO,EACP,sCAAsC,GACvC,EAAE;IACD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,sCAAsC,CAAC,EAAE,OAAO,CAAC;CAClD,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnB;AAED,QAAA,MAAM,SAAS;;;;;;CAA6E,CAAC;AAC7F,eAAe,SAAS,CAAC;AACzB,MAAM,MAAM,YAAY,GAAG,OAAO,SAAS,CAAC"}
|
|
@@ -16,7 +16,14 @@ export interface KakaoNaviLocation {
|
|
|
16
16
|
y: Double;
|
|
17
17
|
rpflag?: string;
|
|
18
18
|
}
|
|
19
|
+
export type KakaoNaviRouteParams = {
|
|
20
|
+
destination: KakaoNaviLocation;
|
|
21
|
+
option?: KakaoNaviOption;
|
|
22
|
+
viaList?: KakaoNaviLocation[];
|
|
23
|
+
};
|
|
19
24
|
export interface Spec extends TurboModule {
|
|
25
|
+
isKakaoNaviInstalled(): Promise<boolean>;
|
|
26
|
+
makeNaviUrl(destination: UnsafeObject, isShare: boolean, option?: UnsafeObject, viaList?: ReadonlyArray<UnsafeObject>): Promise<string>;
|
|
20
27
|
navigateOrShareTo(destination: UnsafeObject, option?: UnsafeObject, viaList?: ReadonlyArray<UnsafeObject>, openWebInstallUrlIfNaviAppNotAvailable?: boolean, isShare?: boolean): Promise<boolean>;
|
|
21
28
|
}
|
|
22
29
|
declare const _default: Spec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeKakaoNavi.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeKakaoNavi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IACvF,QAAQ,CAAC,EACL,MAAM,GACN,MAAM,GACN,UAAU,GACV,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,GACR,aAAa,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,iBAAiB,CACf,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,EACrC,sCAAsC,CAAC,EAAE,OAAO,EAChD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;;AAED,wBAAsE"}
|
|
1
|
+
{"version":3,"file":"NativeKakaoNavi.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeKakaoNavi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IACvF,QAAQ,CAAC,EACL,MAAM,GACN,MAAM,GACN,UAAU,GACV,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,GACR,aAAa,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,WAAW,CACT,WAAW,EAAE,YAAY,EACzB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,iBAAiB,CACf,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,EACrC,sCAAsC,CAAC,EAAE,OAAO,EAChD,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;;AAED,wBAAsE"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-kakao/navi",
|
|
3
3
|
"description": "React Native Kakao Navi SDK",
|
|
4
|
-
"version": "3.1.0-next.
|
|
4
|
+
"version": "3.1.0-next.1",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
7
7
|
"types": "lib/typescript/src/index.d.ts",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"access": "public"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@react-native-kakao/core": "3.1.0-next.
|
|
60
|
+
"@react-native-kakao/core": "3.1.0-next.1",
|
|
61
61
|
"@types/invariant": "^2",
|
|
62
62
|
"@types/react": "~19.2.2",
|
|
63
63
|
"del-cli": "^5.1.0",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"typescript": "~6.0.3"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
|
-
"@react-native-kakao/core": "3.1.0-next.
|
|
70
|
+
"@react-native-kakao/core": "3.1.0-next.1",
|
|
71
71
|
"react": "*",
|
|
72
72
|
"react-native": ">=0.76.0"
|
|
73
73
|
},
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,38 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { kAssert } from '@react-native-kakao/core';
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
KakaoNaviLocation,
|
|
5
|
+
KakaoNaviOption,
|
|
6
|
+
KakaoNaviRouteParams,
|
|
7
|
+
} from './spec/NativeKakaoNavi';
|
|
2
8
|
import Native from './spec/NativeKakaoNavi';
|
|
3
9
|
|
|
4
|
-
export type {
|
|
10
|
+
export type {
|
|
11
|
+
KakaoNaviLocation,
|
|
12
|
+
KakaoNaviOption,
|
|
13
|
+
KakaoNaviRouteParams,
|
|
14
|
+
} from './spec/NativeKakaoNavi';
|
|
15
|
+
|
|
16
|
+
export function isKakaoNaviInstalled(): Promise<boolean> {
|
|
17
|
+
return Native.isKakaoNaviInstalled();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function getNavigateUrl(params: KakaoNaviRouteParams): Promise<string> {
|
|
21
|
+
return makeNaviUrl(params, false);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function getShareUrl(params: KakaoNaviRouteParams): Promise<string> {
|
|
25
|
+
return makeNaviUrl(params, true);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async function makeNaviUrl(
|
|
29
|
+
{ destination, option, viaList }: KakaoNaviRouteParams,
|
|
30
|
+
isShare: boolean,
|
|
31
|
+
) {
|
|
32
|
+
kAssert(viaList == null || viaList.length <= 3, 'viaList must contain at most 3 stops.');
|
|
33
|
+
|
|
34
|
+
return Native.makeNaviUrl(destination, isShare, option, viaList);
|
|
35
|
+
}
|
|
5
36
|
|
|
6
37
|
export function navigateTo({
|
|
7
38
|
destination,
|
|
@@ -43,6 +74,6 @@ export function shareTo({
|
|
|
43
74
|
);
|
|
44
75
|
}
|
|
45
76
|
|
|
46
|
-
const KakaoNavi = { navigateTo, shareTo };
|
|
77
|
+
const KakaoNavi = { isKakaoNaviInstalled, getNavigateUrl, getShareUrl, navigateTo, shareTo };
|
|
47
78
|
export default KakaoNavi;
|
|
48
79
|
export type KakaoNaviAPI = typeof KakaoNavi;
|
package/src/index.web.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { filterNonNullishKeys } from '@mj-studio/js-util';
|
|
2
|
-
import { kAssert } from '@react-native-kakao/core';
|
|
2
|
+
import { kAssert, kCreateWebError } from '@react-native-kakao/core';
|
|
3
3
|
|
|
4
4
|
import type { KakaoNaviAPI, KakaoNaviOption } from './index';
|
|
5
5
|
|
|
@@ -79,6 +79,9 @@ function getRpOption(v: KakaoNaviOption['rpOption']): number {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
const KakaoNavi: KakaoNaviAPI = {
|
|
82
|
+
isKakaoNaviInstalled: async () => false,
|
|
83
|
+
getNavigateUrl: unsupportedUrlBuilder,
|
|
84
|
+
getShareUrl: unsupportedUrlBuilder,
|
|
82
85
|
navigateTo: async ({ viaList, destination, option }) => {
|
|
83
86
|
kAssert(
|
|
84
87
|
viaList ? viaList.length <= 3 : true,
|
|
@@ -143,6 +146,13 @@ const KakaoNavi: KakaoNaviAPI = {
|
|
|
143
146
|
},
|
|
144
147
|
};
|
|
145
148
|
|
|
149
|
+
async function unsupportedUrlBuilder(): Promise<never> {
|
|
150
|
+
kCreateWebError({
|
|
151
|
+
code: 'Package-UnsupportedPlatform',
|
|
152
|
+
message: 'The Kakao JavaScript SDK does not provide Navi URL builders.',
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
|
|
146
156
|
function isMobileBrowser() {
|
|
147
157
|
return (
|
|
148
158
|
/android|iphone|ipad|ipod/i.test(navigator.userAgent) ||
|
|
@@ -150,5 +160,5 @@ function isMobileBrowser() {
|
|
|
150
160
|
);
|
|
151
161
|
}
|
|
152
162
|
|
|
153
|
-
export const { navigateTo, shareTo } = KakaoNavi;
|
|
163
|
+
export const { isKakaoNaviInstalled, getNavigateUrl, getShareUrl, navigateTo, shareTo } = KakaoNavi;
|
|
154
164
|
export default KakaoNavi;
|
|
@@ -27,7 +27,20 @@ export interface KakaoNaviLocation {
|
|
|
27
27
|
rpflag?: string;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
export type KakaoNaviRouteParams = {
|
|
31
|
+
destination: KakaoNaviLocation;
|
|
32
|
+
option?: KakaoNaviOption;
|
|
33
|
+
viaList?: KakaoNaviLocation[];
|
|
34
|
+
};
|
|
35
|
+
|
|
30
36
|
export interface Spec extends TurboModule {
|
|
37
|
+
isKakaoNaviInstalled(): Promise<boolean>;
|
|
38
|
+
makeNaviUrl(
|
|
39
|
+
destination: UnsafeObject,
|
|
40
|
+
isShare: boolean,
|
|
41
|
+
option?: UnsafeObject,
|
|
42
|
+
viaList?: ReadonlyArray<UnsafeObject>,
|
|
43
|
+
): Promise<string>;
|
|
31
44
|
navigateOrShareTo(
|
|
32
45
|
destination: UnsafeObject,
|
|
33
46
|
option?: UnsafeObject,
|