@alfalab/bridge-to-native 0.0.7-beta-34caabb → 0.0.7-beta-5df3687
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/constants.d.ts +1 -0
- package/constants.js +2 -1
- package/index.d.ts +6 -5
- package/index.js +4 -2
- package/native-navigation-and-title.d.ts +23 -20
- package/native-navigation-and-title.js +43 -26
- package/package.json +1 -1
- package/types.d.ts +2 -0
package/constants.d.ts
CHANGED
package/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nativeFeaturesFromVersion = exports.versionToIosAppId = exports.PREVIOUS_NATIVE_NAVIGATION_AND_TITLE_STATE_STORAGE_KEY = exports.PREVIOUS_B2N_STATE_STORAGE_KEY = exports.CLOSE_WEBVIEW_SEARCH_VALUE = exports.CLOSE_WEBVIEW_SEARCH_KEY = void 0;
|
|
3
|
+
exports.DEEP_LINK_PATTERN = exports.nativeFeaturesFromVersion = exports.versionToIosAppId = exports.PREVIOUS_NATIVE_NAVIGATION_AND_TITLE_STATE_STORAGE_KEY = exports.PREVIOUS_B2N_STATE_STORAGE_KEY = exports.CLOSE_WEBVIEW_SEARCH_VALUE = exports.CLOSE_WEBVIEW_SEARCH_KEY = void 0;
|
|
4
4
|
exports.CLOSE_WEBVIEW_SEARCH_KEY = 'closeWebView';
|
|
5
5
|
exports.CLOSE_WEBVIEW_SEARCH_VALUE = 'true';
|
|
6
6
|
exports.PREVIOUS_B2N_STATE_STORAGE_KEY = 'previousBridgeToNativeState';
|
|
@@ -25,3 +25,4 @@ exports.nativeFeaturesFromVersion = {
|
|
|
25
25
|
geolocation: { fromVersion: '0.0.0' },
|
|
26
26
|
},
|
|
27
27
|
};
|
|
28
|
+
exports.DEEP_LINK_PATTERN = /^(\/|\x61\x6c\x66\x61\x62\x61\x6e\x6b:\/{3}dashboard\/|\x61\x6c\x66\x61\x62\x61\x6e\x6b:\/{3}|\x61\x6c\x66\x61\x62\x61\x6e\x6b:\/{2}|https:\/{2}\x6f\x6e\x6c\x69\x6e\x65\x2e\x61\x6c\x66\x61\x62\x61\x6e\x6b\x2e\x72\x75\/)/;
|
package/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { NativeFallbacks } from './native-fallbacks';
|
|
2
|
-
import {
|
|
3
|
-
import type { Environment, NativeFeatureKey, NativeParams } from './types';
|
|
2
|
+
import { NativeNavigationAndTitle } from './native-navigation-and-title';
|
|
3
|
+
import type { Environment, HandleRedirect, NativeFeatureKey, NativeParams } from './types';
|
|
4
4
|
declare type Theme = 'light' | 'dark';
|
|
5
5
|
/**
|
|
6
|
-
* Этот класс
|
|
6
|
+
* Этот класс — абстракция для связи веб приложения с нативом и предназначен ТОЛЬКО
|
|
7
7
|
* для использования в вебвью окружении.
|
|
8
8
|
*/
|
|
9
9
|
export declare class BridgeToNative {
|
|
@@ -18,8 +18,9 @@ export declare class BridgeToNative {
|
|
|
18
18
|
private _appVersion;
|
|
19
19
|
private _iosAppId?;
|
|
20
20
|
private _theme;
|
|
21
|
-
private
|
|
22
|
-
|
|
21
|
+
private readonly _blankPagePath;
|
|
22
|
+
private readonly _handleRedirect;
|
|
23
|
+
constructor(handleRedirect: HandleRedirect, blankPagePath: string, nativeParams?: NativeParams);
|
|
23
24
|
get theme(): Theme;
|
|
24
25
|
get appVersion(): string;
|
|
25
26
|
get iosAppId(): string | undefined;
|
package/index.js
CHANGED
|
@@ -7,11 +7,11 @@ const native_fallbacks_1 = require("./native-fallbacks");
|
|
|
7
7
|
const native_navigation_and_title_1 = require("./native-navigation-and-title");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
9
|
/**
|
|
10
|
-
* Этот класс
|
|
10
|
+
* Этот класс — абстракция для связи веб приложения с нативом и предназначен ТОЛЬКО
|
|
11
11
|
* для использования в вебвью окружении.
|
|
12
12
|
*/
|
|
13
13
|
class BridgeToNative {
|
|
14
|
-
constructor(handleRedirect, nativeParams) {
|
|
14
|
+
constructor(handleRedirect, blankPagePath, nativeParams) {
|
|
15
15
|
// Webview, запущенное в Android окружении имеет объект `Android` в window.
|
|
16
16
|
this.AndroidBridge = window.Android;
|
|
17
17
|
this.environment = this.AndroidBridge ? 'android' : 'ios';
|
|
@@ -19,6 +19,7 @@ class BridgeToNative {
|
|
|
19
19
|
if (previousState) {
|
|
20
20
|
this.restorePreviousState();
|
|
21
21
|
this.nativeFallbacks = new native_fallbacks_1.NativeFallbacks(this);
|
|
22
|
+
this._blankPagePath = blankPagePath;
|
|
22
23
|
return;
|
|
23
24
|
}
|
|
24
25
|
this._appVersion =
|
|
@@ -32,6 +33,7 @@ class BridgeToNative {
|
|
|
32
33
|
this._handleRedirect = handleRedirect;
|
|
33
34
|
this.nextPageId = nativeParams ? nativeParams.nextPageId : null;
|
|
34
35
|
this.nativeFallbacks = new native_fallbacks_1.NativeFallbacks(this);
|
|
36
|
+
this._blankPagePath = blankPagePath;
|
|
35
37
|
}
|
|
36
38
|
get theme() {
|
|
37
39
|
return this._theme;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
+
import { HandleRedirect } from './types';
|
|
1
2
|
import { BridgeToNative } from '.';
|
|
2
|
-
export declare type HandleRedirect = (appName: string, path?: string, params?: Record<string, string>) => void;
|
|
3
3
|
/**
|
|
4
|
-
* Класс, отвечающий за взаимодействие с нативными элементами в приложении – заголовком
|
|
5
|
-
* и нативной кнопкой назад.
|
|
4
|
+
* Класс, отвечающий за взаимодействие с нативными элементами в приложении – заголовком и нативной кнопкой назад.
|
|
6
5
|
*/
|
|
7
6
|
export declare class NativeNavigationAndTitle {
|
|
8
7
|
private b2n;
|
|
9
8
|
private nativeHistoryStack;
|
|
10
9
|
private numOfBackSteps;
|
|
11
10
|
private lastSetPageSettingsParams;
|
|
12
|
-
private
|
|
11
|
+
private readonly _handleWindowRedirect;
|
|
13
12
|
constructor(b2n: BridgeToNative, pageId: number | null, initialNativeTitle: string | undefined, handleWindowRedirect: HandleRedirect);
|
|
14
13
|
/**
|
|
15
14
|
* Метод, вызывающий `history.back()` или закрывающий вебвью, если нет записей
|
|
@@ -18,15 +17,15 @@ export declare class NativeNavigationAndTitle {
|
|
|
18
17
|
goBack(): void;
|
|
19
18
|
/**
|
|
20
19
|
* Метод, вызывающий history.go(-колл. шагов назад) и модифицирует внутреннее
|
|
21
|
-
* состояние, чтобы в дальнейшем
|
|
20
|
+
* состояние, чтобы в дальнейшем зарегистрировать этот переход в приложении.
|
|
22
21
|
*
|
|
23
22
|
* @param stepsNumber Количество шагов назад.
|
|
24
23
|
* Возможно передача как положительного, так и отрицательного числа.
|
|
25
24
|
* 0 будет проигнорирован.
|
|
26
|
-
* @param
|
|
27
|
-
*
|
|
25
|
+
* @param autoCloseWebview Флаг – закрывать ли вебвью автоматически,
|
|
26
|
+
* если переданное кол-во шагов будет больше чем записей в истории.
|
|
28
27
|
*/
|
|
29
|
-
goBackAFewSteps(stepsNumber: number,
|
|
28
|
+
goBackAFewSteps(stepsNumber: number, autoCloseWebview?: boolean): void;
|
|
30
29
|
/**
|
|
31
30
|
* @param path Путь для перехода на функциональность внутри приложения.
|
|
32
31
|
*/
|
|
@@ -42,7 +41,7 @@ export declare class NativeNavigationAndTitle {
|
|
|
42
41
|
handleRedirect(pageTitle: string, appName: string, path?: string, params?: Record<string, string>): void;
|
|
43
42
|
/**
|
|
44
43
|
* Информирует натив, что веб находится на первом экране (сбрасывает историю переходов, не влияя на браузерную
|
|
45
|
-
* историю), а значит следующее нажатие на кнопку "Назад" в
|
|
44
|
+
* историю), а значит следующее нажатие на кнопку "Назад" в нативе закроет вебвью.
|
|
46
45
|
*
|
|
47
46
|
* @param pageTitle Заголовок, который нужно отрисовать в нативе.
|
|
48
47
|
*/
|
|
@@ -54,24 +53,28 @@ export declare class NativeNavigationAndTitle {
|
|
|
54
53
|
*/
|
|
55
54
|
setTitle(pageTitle: string): void;
|
|
56
55
|
/**
|
|
57
|
-
* Метод для открытия второго web приложения в рамках
|
|
58
|
-
*
|
|
59
|
-
* сохраняет все текущее состояние текущего экземпляра bridgeToAm и AmNavigationAndTitle в sessionStorage, а
|
|
56
|
+
* Метод для открытия второго web приложения в рамках одной вебвью сессии.
|
|
57
|
+
* Сохраняет все текущее состояние текущего экземпляра bridgeToAm и AmNavigationAndTitle в sessionStorage, а
|
|
60
58
|
* так же наполняет url необходимыми query параметрами. Работает только в Android окружении.
|
|
61
59
|
* В IOS окружении будет открыто новое webview поверх текущего.
|
|
62
|
-
*
|
|
60
|
+
*
|
|
61
|
+
* @param url адрес второго web приложения, к которому перед переходом на него будут добавлены
|
|
63
62
|
* все initial query параметры от натива и параметр nextPageId (Android)
|
|
64
63
|
*/
|
|
65
64
|
navigateInsideASharedSession(url: string): void;
|
|
66
65
|
/**
|
|
67
|
-
* ПОКА НЕ ИСПОЛЬЗОВАТЬ В ПРОДЕ (МЕТОД НЕ РАБОТАЕТ КОРРЕКТНО НА ANDROID)
|
|
68
|
-
* НА ANDROID ПРИ ПЕРЕЗАГРУЗКЕ СТРАНИЦЫ В ИСТРИЮ ЛОЖИТСЯ + ЕЩЕ ОДИН ЛИШНИЙ ЭЛЕМЕНТ
|
|
69
|
-
* Данный метод будет дорабатываться отдельной задачей
|
|
70
66
|
* Безопасный способ для перезагрузки страницы.
|
|
71
|
-
* Производит предварительное сохранение текущего состояния
|
|
72
|
-
* BridgeToNative и NativeNavigationAndTitle перед вызовом location.reload()
|
|
73
67
|
*/
|
|
74
|
-
|
|
68
|
+
pseudoReloadPage(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Вызывает обработчик deeplinks в нативе (АМ) и передает туда переданный deeplink.
|
|
71
|
+
* На Android текущее webview будет закрыто из-за технических особенностей.
|
|
72
|
+
* На IOS нативная фича открывается в следующем по стеку экране и при выходе из нее пользователь вернется обратно в webview.
|
|
73
|
+
* На IOS есть возможность закрыть webview перед открытием нативной фичи, передав второй параметр closeIOSWebviewBeforeCallNativeDeeplinkHandler = true
|
|
74
|
+
* @param deeplink диплинк на нативную АМ фичу в AM
|
|
75
|
+
* @param [closeIOSWebviewBeforeCallNativeDeeplinkHandler = false] закрыть текущее webview после открытия нативной фичи (применимо только для IOS на Android по техническим причинам webview всегда будет закрываться)
|
|
76
|
+
*/
|
|
77
|
+
handleNativeDeeplink(deeplink: string, closeIOSWebviewBeforeCallNativeDeeplinkHandler?: boolean): void;
|
|
75
78
|
/**
|
|
76
79
|
* Метод для сохранения текущего состояния NativeNavigationAndTitle в sessionStorage.
|
|
77
80
|
*/
|
|
@@ -136,7 +139,7 @@ export declare class NativeNavigationAndTitle {
|
|
|
136
139
|
* рамках одной вебвью сессии
|
|
137
140
|
* @param url - url иного веб приложения
|
|
138
141
|
* @return подготовленная согласно контракту ссылка на иное веб приложение с initial query
|
|
139
|
-
* параметрами от
|
|
142
|
+
* параметрами от натива, а так же nextPageId.
|
|
140
143
|
*/
|
|
141
144
|
private prepareExternalLinkBeforeOpen;
|
|
142
145
|
}
|
|
@@ -4,8 +4,7 @@ exports.NativeNavigationAndTitle = void 0;
|
|
|
4
4
|
const constants_1 = require("./constants");
|
|
5
5
|
const utils_1 = require("./utils");
|
|
6
6
|
/**
|
|
7
|
-
* Класс, отвечающий за взаимодействие с нативными элементами в приложении – заголовком
|
|
8
|
-
* и нативной кнопкой назад.
|
|
7
|
+
* Класс, отвечающий за взаимодействие с нативными элементами в приложении – заголовком и нативной кнопкой назад.
|
|
9
8
|
*/
|
|
10
9
|
class NativeNavigationAndTitle {
|
|
11
10
|
constructor(b2n, pageId, initialNativeTitle = '', handleWindowRedirect) {
|
|
@@ -16,7 +15,7 @@ class NativeNavigationAndTitle {
|
|
|
16
15
|
// Просто, чтобы не слать одинаковые сигналы в приложение.
|
|
17
16
|
this.lastSetPageSettingsParams = '';
|
|
18
17
|
this.handleBack = this.handleBack.bind(this);
|
|
19
|
-
this.
|
|
18
|
+
this._handleWindowRedirect = handleWindowRedirect;
|
|
20
19
|
const previousState = !!sessionStorage.getItem(constants_1.PREVIOUS_NATIVE_NAVIGATION_AND_TITLE_STATE_STORAGE_KEY);
|
|
21
20
|
if (pageId) {
|
|
22
21
|
this.supportSharedSession(pageId, initialNativeTitle);
|
|
@@ -37,22 +36,22 @@ class NativeNavigationAndTitle {
|
|
|
37
36
|
}
|
|
38
37
|
/**
|
|
39
38
|
* Метод, вызывающий history.go(-колл. шагов назад) и модифицирует внутреннее
|
|
40
|
-
* состояние, чтобы в дальнейшем
|
|
39
|
+
* состояние, чтобы в дальнейшем зарегистрировать этот переход в приложении.
|
|
41
40
|
*
|
|
42
41
|
* @param stepsNumber Количество шагов назад.
|
|
43
42
|
* Возможно передача как положительного, так и отрицательного числа.
|
|
44
43
|
* 0 будет проигнорирован.
|
|
45
|
-
* @param
|
|
46
|
-
*
|
|
44
|
+
* @param autoCloseWebview Флаг – закрывать ли вебвью автоматически,
|
|
45
|
+
* если переданное кол-во шагов будет больше чем записей в истории.
|
|
47
46
|
*/
|
|
48
|
-
goBackAFewSteps(stepsNumber,
|
|
47
|
+
goBackAFewSteps(stepsNumber, autoCloseWebview = false) {
|
|
49
48
|
if (!stepsNumber) {
|
|
50
49
|
return;
|
|
51
50
|
}
|
|
52
51
|
const stepsToBack = Math.abs(stepsNumber);
|
|
53
52
|
const maxStepsToBack = this.nativeHistoryStack.length - 1;
|
|
54
53
|
if (stepsToBack > maxStepsToBack) {
|
|
55
|
-
if (
|
|
54
|
+
if (autoCloseWebview) {
|
|
56
55
|
this.b2n.closeWebview();
|
|
57
56
|
return;
|
|
58
57
|
}
|
|
@@ -70,11 +69,11 @@ class NativeNavigationAndTitle {
|
|
|
70
69
|
*/
|
|
71
70
|
handleRedirect(pageTitleOrPath, appName, path, params) {
|
|
72
71
|
if (appName) {
|
|
73
|
-
this.
|
|
72
|
+
this._handleWindowRedirect(appName, path, params);
|
|
74
73
|
}
|
|
75
74
|
else {
|
|
76
75
|
const { appName: extractedAppName, path: extractedPath, query: extractedQuery, } = (0, utils_1.extractAppNameRouteAndQuery)(pageTitleOrPath);
|
|
77
|
-
this.
|
|
76
|
+
this._handleWindowRedirect(extractedAppName, extractedPath, extractedQuery);
|
|
78
77
|
}
|
|
79
78
|
const title = appName ? pageTitleOrPath : '';
|
|
80
79
|
this.nativeHistoryStack.push(title);
|
|
@@ -82,7 +81,7 @@ class NativeNavigationAndTitle {
|
|
|
82
81
|
}
|
|
83
82
|
/**
|
|
84
83
|
* Информирует натив, что веб находится на первом экране (сбрасывает историю переходов, не влияя на браузерную
|
|
85
|
-
* историю), а значит следующее нажатие на кнопку "Назад" в
|
|
84
|
+
* историю), а значит следующее нажатие на кнопку "Назад" в нативе закроет вебвью.
|
|
86
85
|
*
|
|
87
86
|
* @param pageTitle Заголовок, который нужно отрисовать в нативе.
|
|
88
87
|
*/
|
|
@@ -101,17 +100,18 @@ class NativeNavigationAndTitle {
|
|
|
101
100
|
this.syncHistoryWithNative(pageTitle, 'title-replacing');
|
|
102
101
|
}
|
|
103
102
|
/**
|
|
104
|
-
* Метод для открытия второго web приложения в рамках
|
|
105
|
-
*
|
|
106
|
-
* сохраняет все текущее состояние текущего экземпляра bridgeToAm и AmNavigationAndTitle в sessionStorage, а
|
|
103
|
+
* Метод для открытия второго web приложения в рамках одной вебвью сессии.
|
|
104
|
+
* Сохраняет все текущее состояние текущего экземпляра bridgeToAm и AmNavigationAndTitle в sessionStorage, а
|
|
107
105
|
* так же наполняет url необходимыми query параметрами. Работает только в Android окружении.
|
|
108
106
|
* В IOS окружении будет открыто новое webview поверх текущего.
|
|
109
|
-
*
|
|
107
|
+
*
|
|
108
|
+
* @param url адрес второго web приложения, к которому перед переходом на него будут добавлены
|
|
110
109
|
* все initial query параметры от натива и параметр nextPageId (Android)
|
|
111
110
|
*/
|
|
112
111
|
navigateInsideASharedSession(url) {
|
|
113
112
|
if (this.b2n.environment === 'ios') {
|
|
114
|
-
|
|
113
|
+
const nativeDeeplink = `/webFeature?type=recommendation&url=${encodeURIComponent(url)}`;
|
|
114
|
+
this.handleNativeDeeplink(nativeDeeplink);
|
|
115
115
|
return;
|
|
116
116
|
}
|
|
117
117
|
// В b2n этот метод отмечен модификатором доступа private, но тут его нужно вызвать
|
|
@@ -121,19 +121,36 @@ class NativeNavigationAndTitle {
|
|
|
121
121
|
window.location.assign(this.prepareExternalLinkBeforeOpen(url));
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
|
-
* ПОКА НЕ ИСПОЛЬЗОВАТЬ В ПРОДЕ (МЕТОД НЕ РАБОТАЕТ КОРРЕКТНО НА ANDROID)
|
|
125
|
-
* НА ANDROID ПРИ ПЕРЕЗАГРУЗКЕ СТРАНИЦЫ В ИСТРИЮ ЛОЖИТСЯ + ЕЩЕ ОДИН ЛИШНИЙ ЭЛЕМЕНТ
|
|
126
|
-
* Данный метод будет дорабатываться отдельной задачей
|
|
127
124
|
* Безопасный способ для перезагрузки страницы.
|
|
128
|
-
* Производит предварительное сохранение текущего состояния
|
|
129
|
-
* BridgeToNative и NativeNavigationAndTitle перед вызовом location.reload()
|
|
130
125
|
*/
|
|
131
|
-
|
|
126
|
+
pseudoReloadPage() {
|
|
132
127
|
// В b2n этот метод отмечен модификатором доступа private, но тут его нужно вызвать
|
|
133
128
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
134
129
|
// @ts-ignore
|
|
135
|
-
this.b2n.
|
|
136
|
-
|
|
130
|
+
this.handleRedirect(this.b2n._blankPagePath);
|
|
131
|
+
this.goBack();
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Вызывает обработчик deeplinks в нативе (АМ) и передает туда переданный deeplink.
|
|
135
|
+
* На Android текущее webview будет закрыто из-за технических особенностей.
|
|
136
|
+
* На IOS нативная фича открывается в следующем по стеку экране и при выходе из нее пользователь вернется обратно в webview.
|
|
137
|
+
* На IOS есть возможность закрыть webview перед открытием нативной фичи, передав второй параметр closeIOSWebviewBeforeCallNativeDeeplinkHandler = true
|
|
138
|
+
* @param deeplink диплинк на нативную АМ фичу в AM
|
|
139
|
+
* @param [closeIOSWebviewBeforeCallNativeDeeplinkHandler = false] закрыть текущее webview после открытия нативной фичи (применимо только для IOS на Android по техническим причинам webview всегда будет закрываться)
|
|
140
|
+
*/
|
|
141
|
+
handleNativeDeeplink(deeplink, closeIOSWebviewBeforeCallNativeDeeplinkHandler = false) {
|
|
142
|
+
const clearedDeeplinkPath = deeplink.replace(constants_1.DEEP_LINK_PATTERN, '');
|
|
143
|
+
if (this.b2n.environment === 'ios') {
|
|
144
|
+
if (closeIOSWebviewBeforeCallNativeDeeplinkHandler) {
|
|
145
|
+
this.b2n.closeWebview();
|
|
146
|
+
setTimeout(() => window.location.replace(`${this.b2n.iosAppId}://${clearedDeeplinkPath}`), 0);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
window.location.replace(`${this.b2n.iosAppId}://${clearedDeeplinkPath}`);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
window.location.replace(`alfabank://${clearedDeeplinkPath}`);
|
|
153
|
+
}
|
|
137
154
|
}
|
|
138
155
|
/**
|
|
139
156
|
* Метод для сохранения текущего состояния NativeNavigationAndTitle в sessionStorage.
|
|
@@ -191,7 +208,7 @@ class NativeNavigationAndTitle {
|
|
|
191
208
|
getNativePageIdForNavigation() {
|
|
192
209
|
const stackSize = this.nativeHistoryStack.length;
|
|
193
210
|
// Нажимая на кнопку назад, можно дойти до "первой" страницы,
|
|
194
|
-
// в iOS для "первой" страницы не нужно слать `pageId
|
|
211
|
+
// в iOS для "первой" страницы не нужно слать `pageId`.
|
|
195
212
|
return this.b2n.environment === 'ios' && stackSize <= 1 ? null : stackSize;
|
|
196
213
|
}
|
|
197
214
|
/**
|
|
@@ -297,7 +314,7 @@ class NativeNavigationAndTitle {
|
|
|
297
314
|
* рамках одной вебвью сессии
|
|
298
315
|
* @param url - url иного веб приложения
|
|
299
316
|
* @return подготовленная согласно контракту ссылка на иное веб приложение с initial query
|
|
300
|
-
* параметрами от
|
|
317
|
+
* параметрами от натива, а так же nextPageId.
|
|
301
318
|
*/
|
|
302
319
|
prepareExternalLinkBeforeOpen(url) {
|
|
303
320
|
const currentPageId = this.nativeHistoryStack.length;
|
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -29,4 +29,6 @@ export declare type PreviousNativeNavigationAndTitleState = {
|
|
|
29
29
|
nativeHistoryStack: string[];
|
|
30
30
|
title: string;
|
|
31
31
|
};
|
|
32
|
+
export declare type SyncPurpose = 'initialization' | 'navigation' | 'title-replacing';
|
|
33
|
+
export declare type HandleRedirect = (appName: string, path?: string, params?: Record<string, string>) => void;
|
|
32
34
|
export {};
|