@norcy/react-native-toolkit 0.1.71 → 0.1.72
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/lib/commonjs/{LinkingManager.js → Link.js} +6 -6
- package/lib/commonjs/Link.js.map +1 -0
- package/lib/commonjs/index.js +4 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/{LinkingManager.js → Link.js} +5 -5
- package/lib/module/Link.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/{LinkingManager.d.ts → Link.d.ts} +2 -2
- package/lib/typescript/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/{LinkingManager.ts → Link.ts} +4 -4
- package/src/index.tsx +1 -1
- package/lib/commonjs/LinkingManager.js.map +0 -1
- package/lib/module/LinkingManager.js.map +0 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.Link = void 0;
|
|
7
7
|
var _queryString = _interopRequireDefault(require("query-string"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _Tool = require("./Tool");
|
|
@@ -40,7 +40,7 @@ const getAppInsideQueryParams = url => {
|
|
|
40
40
|
return ret;
|
|
41
41
|
};
|
|
42
42
|
let GlobalNavigation = null;
|
|
43
|
-
const
|
|
43
|
+
const Link = exports.Link = {
|
|
44
44
|
/* 测试用例:
|
|
45
45
|
1. https://norcy.xyz/iread 安卓打开浏览器官网
|
|
46
46
|
2. https://www.coolapk.com/apk/com.norcy.iread 安卓跳酷安
|
|
@@ -51,7 +51,7 @@ const LinkingManager = exports.LinkingManager = {
|
|
|
51
51
|
7. WebPage?url=https%3A%2F%2Fqq.com App 内跳转
|
|
52
52
|
9. https://qq.com 跳转浏览器
|
|
53
53
|
*/
|
|
54
|
-
|
|
54
|
+
open: url => {
|
|
55
55
|
if (!url) {
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
@@ -88,12 +88,12 @@ const LinkingManager = exports.LinkingManager = {
|
|
|
88
88
|
GlobalNavigation = navigation;
|
|
89
89
|
_reactNative.Linking.getInitialURL().then(url => {
|
|
90
90
|
// 此处 url 都是官网开头
|
|
91
|
-
|
|
91
|
+
Link.open(url !== null && url !== void 0 ? url : undefined);
|
|
92
92
|
}).catch(err => console.error('获取初始URL时出错:', err));
|
|
93
93
|
_reactNative.Linking.addEventListener('url', event => {
|
|
94
94
|
// 此处 url 都是官网开头
|
|
95
|
-
|
|
95
|
+
Link.open(event.url);
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
};
|
|
99
|
-
//# sourceMappingURL=
|
|
99
|
+
//# sourceMappingURL=Link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_queryString","_interopRequireDefault","require","_reactNative","_Tool","obj","__esModule","default","getAppInsideQueryParams","url","ret","page","params","scheme","query","split","queryString","parse","startsWith","ToolkitConfig","AppWebsite","AppScheme","pageName","substring","length","GlobalNavigation","Link","exports","open","console","log","AndroidStoreUrl","Tool","goAppStoreReview","_GlobalNavigation","navigate","Linking","canOpenURL","then","supported","openURL","error","catch","init","navigation","getInitialURL","undefined","err","addEventListener","event"],"sources":["Link.ts"],"sourcesContent":["import { NavigationProp, ParamListBase } from '@react-navigation/native';\nimport queryString from 'query-string';\nimport { Linking } from 'react-native';\nimport { Tool, ToolkitConfig } from './Tool';\n\nconst getAppInsideQueryParams = (\n url: string\n): { page: string; params?: object } => {\n // 专门处理 App 内跳转\n // 情况 1:https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com\n // 情况 2:yiyue://WebPage?url=https%3A%2F%2Fqq.com\n // 情况 3:WebPage?url=https%3A%2F%2Fqq.com\n // 全部都转为 {page:Add, params:{value:'你好', mode:0}}\n const ret = { page: '', params: {} };\n\n const [scheme, query] = url.split('?');\n const params = queryString.parse(query) as { [key: string]: string };\n\n if (scheme.startsWith(ToolkitConfig.AppWebsite) && params.page) {\n // https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com\n ret.page = params.page;\n delete params.page;\n ret.params = params;\n } else if (scheme.startsWith(ToolkitConfig.AppScheme)) {\n // yiyue://WebPage?url=https%3A%2F%2Fqq.com\n const pageName = scheme.substring(ToolkitConfig.AppScheme.length);\n ret.page = pageName;\n ret.params = params;\n } else if (scheme.startsWith('http')) {\n // 除了第一个 if,http 开头的不处理\n } else {\n // WebPage?url=https%3A%2F%2Fqq.com\n ret.page = scheme;\n ret.params = params;\n }\n return ret;\n};\n\nlet GlobalNavigation: NavigationProp<ParamListBase> | null = null;\n\nexport const Link = {\n /* 测试用例:\n 1. https://norcy.xyz/iread 安卓打开浏览器官网\n 2. https://www.coolapk.com/apk/com.norcy.iread 安卓跳酷安\n 3. https://apps.apple.com/app/id1589203887 iOS 跳 AppStore\n 4. https://apps.apple.com/app/id1589203887?action=write-review iOS 跳评价\n 5. https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com App 内跳转\n 6. yiyue://WebPage?url=https%3A%2F%2Fqq.com App 内跳转\n 7. WebPage?url=https%3A%2F%2Fqq.com App 内跳转\n 9. https://qq.com 跳转浏览器\n */\n open: (url?: string) => {\n if (!url) {\n return;\n }\n\n console.log('Open URL', url);\n\n // 第一优先级:Android 市场\n if (url.startsWith(ToolkitConfig.AndroidStoreUrl)) {\n Tool.goAppStoreReview();\n return;\n }\n\n // 第二优先级:App 内跳转\n const ret = getAppInsideQueryParams(url);\n if (ret.page) {\n console.log('App 内跳转', ret);\n GlobalNavigation?.navigate(ret.page, ret.params);\n return;\n }\n\n // 第三优先级:外部跳转 AppStore、H5 等\n Linking.canOpenURL(url)\n .then((supported) => {\n if (supported) {\n console.log('外部跳转', url);\n Linking.openURL(url);\n } else {\n console.error('无法跳转', url);\n }\n })\n .catch(() => {\n console.error('无法跳转', url);\n });\n },\n\n init: (navigation: NavigationProp<ParamListBase>) => {\n GlobalNavigation = navigation;\n Linking.getInitialURL()\n .then((url) => {\n // 此处 url 都是官网开头\n Link.open(url ?? undefined);\n })\n .catch((err) => console.error('获取初始URL时出错:', err));\n\n Linking.addEventListener('url', (event) => {\n // 此处 url 都是官网开头\n Link.open(event.url);\n });\n },\n};\n"],"mappings":"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"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -66,15 +66,15 @@ Object.keys(_Frequence).forEach(function (key) {
|
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
});
|
|
69
|
-
var
|
|
70
|
-
Object.keys(
|
|
69
|
+
var _Link = require("./Link");
|
|
70
|
+
Object.keys(_Link).forEach(function (key) {
|
|
71
71
|
if (key === "default" || key === "__esModule") return;
|
|
72
72
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
73
|
-
if (key in exports && exports[key] ===
|
|
73
|
+
if (key in exports && exports[key] === _Link[key]) return;
|
|
74
74
|
Object.defineProperty(exports, key, {
|
|
75
75
|
enumerable: true,
|
|
76
76
|
get: function () {
|
|
77
|
-
return
|
|
77
|
+
return _Link[key];
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_AppBadgeContext","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_AppleLoginUtil","_ConfigDataModel","_DevConfig","_Frequence","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_AppBadgeContext","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_AppleLoginUtil","_ConfigDataModel","_DevConfig","_Frequence","_Link","_LoginManager","_MessageModel","_Notification","_PrefData","_ReportUtil","_SentryManager","_SyncPrefData","_Tool","_VipAndroidManager","_VipManager","_WeChatLoginUtil","_constant","ReactNativeToolkit","NativeModules","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppBadgeContext';\nexport * from './AppleLoginUtil';\nexport * from './ConfigDataModel';\nexport * from './DevConfig';\nexport * from './Frequence';\nexport * from './Link';\nexport * from './LoginManager';\nexport * from './MessageModel';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './Tool';\nexport * from './VipAndroidManager';\nexport * from './VipManager';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\n"],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ const getAppInsideQueryParams = url => {
|
|
|
33
33
|
return ret;
|
|
34
34
|
};
|
|
35
35
|
let GlobalNavigation = null;
|
|
36
|
-
export const
|
|
36
|
+
export const Link = {
|
|
37
37
|
/* 测试用例:
|
|
38
38
|
1. https://norcy.xyz/iread 安卓打开浏览器官网
|
|
39
39
|
2. https://www.coolapk.com/apk/com.norcy.iread 安卓跳酷安
|
|
@@ -44,7 +44,7 @@ export const LinkingManager = {
|
|
|
44
44
|
7. WebPage?url=https%3A%2F%2Fqq.com App 内跳转
|
|
45
45
|
9. https://qq.com 跳转浏览器
|
|
46
46
|
*/
|
|
47
|
-
|
|
47
|
+
open: url => {
|
|
48
48
|
if (!url) {
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
@@ -81,12 +81,12 @@ export const LinkingManager = {
|
|
|
81
81
|
GlobalNavigation = navigation;
|
|
82
82
|
Linking.getInitialURL().then(url => {
|
|
83
83
|
// 此处 url 都是官网开头
|
|
84
|
-
|
|
84
|
+
Link.open(url !== null && url !== void 0 ? url : undefined);
|
|
85
85
|
}).catch(err => console.error('获取初始URL时出错:', err));
|
|
86
86
|
Linking.addEventListener('url', event => {
|
|
87
87
|
// 此处 url 都是官网开头
|
|
88
|
-
|
|
88
|
+
Link.open(event.url);
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
};
|
|
92
|
-
//# sourceMappingURL=
|
|
92
|
+
//# sourceMappingURL=Link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["queryString","Linking","Tool","ToolkitConfig","getAppInsideQueryParams","url","ret","page","params","scheme","query","split","parse","startsWith","AppWebsite","AppScheme","pageName","substring","length","GlobalNavigation","Link","open","console","log","AndroidStoreUrl","goAppStoreReview","_GlobalNavigation","navigate","canOpenURL","then","supported","openURL","error","catch","init","navigation","getInitialURL","undefined","err","addEventListener","event"],"sources":["Link.ts"],"sourcesContent":["import { NavigationProp, ParamListBase } from '@react-navigation/native';\nimport queryString from 'query-string';\nimport { Linking } from 'react-native';\nimport { Tool, ToolkitConfig } from './Tool';\n\nconst getAppInsideQueryParams = (\n url: string\n): { page: string; params?: object } => {\n // 专门处理 App 内跳转\n // 情况 1:https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com\n // 情况 2:yiyue://WebPage?url=https%3A%2F%2Fqq.com\n // 情况 3:WebPage?url=https%3A%2F%2Fqq.com\n // 全部都转为 {page:Add, params:{value:'你好', mode:0}}\n const ret = { page: '', params: {} };\n\n const [scheme, query] = url.split('?');\n const params = queryString.parse(query) as { [key: string]: string };\n\n if (scheme.startsWith(ToolkitConfig.AppWebsite) && params.page) {\n // https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com\n ret.page = params.page;\n delete params.page;\n ret.params = params;\n } else if (scheme.startsWith(ToolkitConfig.AppScheme)) {\n // yiyue://WebPage?url=https%3A%2F%2Fqq.com\n const pageName = scheme.substring(ToolkitConfig.AppScheme.length);\n ret.page = pageName;\n ret.params = params;\n } else if (scheme.startsWith('http')) {\n // 除了第一个 if,http 开头的不处理\n } else {\n // WebPage?url=https%3A%2F%2Fqq.com\n ret.page = scheme;\n ret.params = params;\n }\n return ret;\n};\n\nlet GlobalNavigation: NavigationProp<ParamListBase> | null = null;\n\nexport const Link = {\n /* 测试用例:\n 1. https://norcy.xyz/iread 安卓打开浏览器官网\n 2. https://www.coolapk.com/apk/com.norcy.iread 安卓跳酷安\n 3. https://apps.apple.com/app/id1589203887 iOS 跳 AppStore\n 4. https://apps.apple.com/app/id1589203887?action=write-review iOS 跳评价\n 5. https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com App 内跳转\n 6. yiyue://WebPage?url=https%3A%2F%2Fqq.com App 内跳转\n 7. WebPage?url=https%3A%2F%2Fqq.com App 内跳转\n 9. https://qq.com 跳转浏览器\n */\n open: (url?: string) => {\n if (!url) {\n return;\n }\n\n console.log('Open URL', url);\n\n // 第一优先级:Android 市场\n if (url.startsWith(ToolkitConfig.AndroidStoreUrl)) {\n Tool.goAppStoreReview();\n return;\n }\n\n // 第二优先级:App 内跳转\n const ret = getAppInsideQueryParams(url);\n if (ret.page) {\n console.log('App 内跳转', ret);\n GlobalNavigation?.navigate(ret.page, ret.params);\n return;\n }\n\n // 第三优先级:外部跳转 AppStore、H5 等\n Linking.canOpenURL(url)\n .then((supported) => {\n if (supported) {\n console.log('外部跳转', url);\n Linking.openURL(url);\n } else {\n console.error('无法跳转', url);\n }\n })\n .catch(() => {\n console.error('无法跳转', url);\n });\n },\n\n init: (navigation: NavigationProp<ParamListBase>) => {\n GlobalNavigation = navigation;\n Linking.getInitialURL()\n .then((url) => {\n // 此处 url 都是官网开头\n Link.open(url ?? undefined);\n })\n .catch((err) => console.error('获取初始URL时出错:', err));\n\n Linking.addEventListener('url', (event) => {\n // 此处 url 都是官网开头\n Link.open(event.url);\n });\n },\n};\n"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export * from './AppleLoginUtil';
|
|
|
8
8
|
export * from './ConfigDataModel';
|
|
9
9
|
export * from './DevConfig';
|
|
10
10
|
export * from './Frequence';
|
|
11
|
-
export * from './
|
|
11
|
+
export * from './Link';
|
|
12
12
|
export * from './LoginManager';
|
|
13
13
|
export * from './MessageModel';
|
|
14
14
|
export * from './Notification';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","ReactNativeToolkit"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppBadgeContext';\nexport * from './AppleLoginUtil';\nexport * from './ConfigDataModel';\nexport * from './DevConfig';\nexport * from './Frequence';\nexport * from './
|
|
1
|
+
{"version":3,"names":["NativeModules","ReactNativeToolkit"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppBadgeContext';\nexport * from './AppleLoginUtil';\nexport * from './ConfigDataModel';\nexport * from './DevConfig';\nexport * from './Frequence';\nexport * from './Link';\nexport * from './LoginManager';\nexport * from './MessageModel';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './Tool';\nexport * from './VipAndroidManager';\nexport * from './VipManager';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAM5C,MAAM;EAAEC;AAAmB,CAAC,GAAGD,aAAa;AAE5C,eAAeC,kBAAkB;AACjC,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,YAAY;AAC1B,cAAc,cAAc;AAC5B,cAAc,iBAAiB;AAC/B,cAAc,gBAAgB;AAC9B,cAAc,QAAQ;AACtB,cAAc,qBAAqB;AACnC,cAAc,cAAc;AAC5B,cAAc,mBAAmB;AACjC,cAAc,YAAY"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NavigationProp, ParamListBase } from '@react-navigation/native';
|
|
2
|
-
export declare const
|
|
3
|
-
|
|
2
|
+
export declare const Link: {
|
|
3
|
+
open: (url?: string) => void;
|
|
4
4
|
init: (navigation: NavigationProp<ParamListBase>) => void;
|
|
5
5
|
};
|
|
@@ -8,7 +8,7 @@ export * from './AppleLoginUtil';
|
|
|
8
8
|
export * from './ConfigDataModel';
|
|
9
9
|
export * from './DevConfig';
|
|
10
10
|
export * from './Frequence';
|
|
11
|
-
export * from './
|
|
11
|
+
export * from './Link';
|
|
12
12
|
export * from './LoginManager';
|
|
13
13
|
export * from './MessageModel';
|
|
14
14
|
export * from './Notification';
|
package/package.json
CHANGED
|
@@ -38,7 +38,7 @@ const getAppInsideQueryParams = (
|
|
|
38
38
|
|
|
39
39
|
let GlobalNavigation: NavigationProp<ParamListBase> | null = null;
|
|
40
40
|
|
|
41
|
-
export const
|
|
41
|
+
export const Link = {
|
|
42
42
|
/* 测试用例:
|
|
43
43
|
1. https://norcy.xyz/iread 安卓打开浏览器官网
|
|
44
44
|
2. https://www.coolapk.com/apk/com.norcy.iread 安卓跳酷安
|
|
@@ -49,7 +49,7 @@ export const LinkingManager = {
|
|
|
49
49
|
7. WebPage?url=https%3A%2F%2Fqq.com App 内跳转
|
|
50
50
|
9. https://qq.com 跳转浏览器
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
open: (url?: string) => {
|
|
53
53
|
if (!url) {
|
|
54
54
|
return;
|
|
55
55
|
}
|
|
@@ -90,13 +90,13 @@ export const LinkingManager = {
|
|
|
90
90
|
Linking.getInitialURL()
|
|
91
91
|
.then((url) => {
|
|
92
92
|
// 此处 url 都是官网开头
|
|
93
|
-
|
|
93
|
+
Link.open(url ?? undefined);
|
|
94
94
|
})
|
|
95
95
|
.catch((err) => console.error('获取初始URL时出错:', err));
|
|
96
96
|
|
|
97
97
|
Linking.addEventListener('url', (event) => {
|
|
98
98
|
// 此处 url 都是官网开头
|
|
99
|
-
|
|
99
|
+
Link.open(event.url);
|
|
100
100
|
});
|
|
101
101
|
},
|
|
102
102
|
};
|
package/src/index.tsx
CHANGED
|
@@ -12,7 +12,7 @@ export * from './AppleLoginUtil';
|
|
|
12
12
|
export * from './ConfigDataModel';
|
|
13
13
|
export * from './DevConfig';
|
|
14
14
|
export * from './Frequence';
|
|
15
|
-
export * from './
|
|
15
|
+
export * from './Link';
|
|
16
16
|
export * from './LoginManager';
|
|
17
17
|
export * from './MessageModel';
|
|
18
18
|
export * from './Notification';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_queryString","_interopRequireDefault","require","_reactNative","_Tool","obj","__esModule","default","getAppInsideQueryParams","url","ret","page","params","scheme","query","split","queryString","parse","startsWith","ToolkitConfig","AppWebsite","AppScheme","pageName","substring","length","GlobalNavigation","LinkingManager","exports","openPage","console","log","AndroidStoreUrl","Tool","goAppStoreReview","_GlobalNavigation","navigate","Linking","canOpenURL","then","supported","openURL","error","catch","init","navigation","getInitialURL","undefined","err","addEventListener","event"],"sources":["LinkingManager.ts"],"sourcesContent":["import { NavigationProp, ParamListBase } from '@react-navigation/native';\nimport queryString from 'query-string';\nimport { Linking } from 'react-native';\nimport { Tool, ToolkitConfig } from './Tool';\n\nconst getAppInsideQueryParams = (\n url: string\n): { page: string; params?: object } => {\n // 专门处理 App 内跳转\n // 情况 1:https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com\n // 情况 2:yiyue://WebPage?url=https%3A%2F%2Fqq.com\n // 情况 3:WebPage?url=https%3A%2F%2Fqq.com\n // 全部都转为 {page:Add, params:{value:'你好', mode:0}}\n const ret = { page: '', params: {} };\n\n const [scheme, query] = url.split('?');\n const params = queryString.parse(query) as { [key: string]: string };\n\n if (scheme.startsWith(ToolkitConfig.AppWebsite) && params.page) {\n // https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com\n ret.page = params.page;\n delete params.page;\n ret.params = params;\n } else if (scheme.startsWith(ToolkitConfig.AppScheme)) {\n // yiyue://WebPage?url=https%3A%2F%2Fqq.com\n const pageName = scheme.substring(ToolkitConfig.AppScheme.length);\n ret.page = pageName;\n ret.params = params;\n } else if (scheme.startsWith('http')) {\n // 除了第一个 if,http 开头的不处理\n } else {\n // WebPage?url=https%3A%2F%2Fqq.com\n ret.page = scheme;\n ret.params = params;\n }\n return ret;\n};\n\nlet GlobalNavigation: NavigationProp<ParamListBase> | null = null;\n\nexport const LinkingManager = {\n /* 测试用例:\n 1. https://norcy.xyz/iread 安卓打开浏览器官网\n 2. https://www.coolapk.com/apk/com.norcy.iread 安卓跳酷安\n 3. https://apps.apple.com/app/id1589203887 iOS 跳 AppStore\n 4. https://apps.apple.com/app/id1589203887?action=write-review iOS 跳评价\n 5. https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com App 内跳转\n 6. yiyue://WebPage?url=https%3A%2F%2Fqq.com App 内跳转\n 7. WebPage?url=https%3A%2F%2Fqq.com App 内跳转\n 9. https://qq.com 跳转浏览器\n */\n openPage: (url?: string) => {\n if (!url) {\n return;\n }\n\n console.log('Open URL', url);\n\n // 第一优先级:Android 市场\n if (url.startsWith(ToolkitConfig.AndroidStoreUrl)) {\n Tool.goAppStoreReview();\n return;\n }\n\n // 第二优先级:App 内跳转\n const ret = getAppInsideQueryParams(url);\n if (ret.page) {\n console.log('App 内跳转', ret);\n GlobalNavigation?.navigate(ret.page, ret.params);\n return;\n }\n\n // 第三优先级:外部跳转 AppStore、H5 等\n Linking.canOpenURL(url)\n .then((supported) => {\n if (supported) {\n console.log('外部跳转', url);\n Linking.openURL(url);\n } else {\n console.error('无法跳转', url);\n }\n })\n .catch(() => {\n console.error('无法跳转', url);\n });\n },\n\n init: (navigation: NavigationProp<ParamListBase>) => {\n GlobalNavigation = navigation;\n Linking.getInitialURL()\n .then((url) => {\n // 此处 url 都是官网开头\n LinkingManager.openPage(url ?? undefined);\n })\n .catch((err) => console.error('获取初始URL时出错:', err));\n\n Linking.addEventListener('url', (event) => {\n // 此处 url 都是官网开头\n LinkingManager.openPage(event.url);\n });\n },\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["queryString","Linking","Tool","ToolkitConfig","getAppInsideQueryParams","url","ret","page","params","scheme","query","split","parse","startsWith","AppWebsite","AppScheme","pageName","substring","length","GlobalNavigation","LinkingManager","openPage","console","log","AndroidStoreUrl","goAppStoreReview","_GlobalNavigation","navigate","canOpenURL","then","supported","openURL","error","catch","init","navigation","getInitialURL","undefined","err","addEventListener","event"],"sources":["LinkingManager.ts"],"sourcesContent":["import { NavigationProp, ParamListBase } from '@react-navigation/native';\nimport queryString from 'query-string';\nimport { Linking } from 'react-native';\nimport { Tool, ToolkitConfig } from './Tool';\n\nconst getAppInsideQueryParams = (\n url: string\n): { page: string; params?: object } => {\n // 专门处理 App 内跳转\n // 情况 1:https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com\n // 情况 2:yiyue://WebPage?url=https%3A%2F%2Fqq.com\n // 情况 3:WebPage?url=https%3A%2F%2Fqq.com\n // 全部都转为 {page:Add, params:{value:'你好', mode:0}}\n const ret = { page: '', params: {} };\n\n const [scheme, query] = url.split('?');\n const params = queryString.parse(query) as { [key: string]: string };\n\n if (scheme.startsWith(ToolkitConfig.AppWebsite) && params.page) {\n // https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com\n ret.page = params.page;\n delete params.page;\n ret.params = params;\n } else if (scheme.startsWith(ToolkitConfig.AppScheme)) {\n // yiyue://WebPage?url=https%3A%2F%2Fqq.com\n const pageName = scheme.substring(ToolkitConfig.AppScheme.length);\n ret.page = pageName;\n ret.params = params;\n } else if (scheme.startsWith('http')) {\n // 除了第一个 if,http 开头的不处理\n } else {\n // WebPage?url=https%3A%2F%2Fqq.com\n ret.page = scheme;\n ret.params = params;\n }\n return ret;\n};\n\nlet GlobalNavigation: NavigationProp<ParamListBase> | null = null;\n\nexport const LinkingManager = {\n /* 测试用例:\n 1. https://norcy.xyz/iread 安卓打开浏览器官网\n 2. https://www.coolapk.com/apk/com.norcy.iread 安卓跳酷安\n 3. https://apps.apple.com/app/id1589203887 iOS 跳 AppStore\n 4. https://apps.apple.com/app/id1589203887?action=write-review iOS 跳评价\n 5. https://norcy.xyz/iread?page=WebPage&url=https%3A%2F%2Fqq.com App 内跳转\n 6. yiyue://WebPage?url=https%3A%2F%2Fqq.com App 内跳转\n 7. WebPage?url=https%3A%2F%2Fqq.com App 内跳转\n 9. https://qq.com 跳转浏览器\n */\n openPage: (url?: string) => {\n if (!url) {\n return;\n }\n\n console.log('Open URL', url);\n\n // 第一优先级:Android 市场\n if (url.startsWith(ToolkitConfig.AndroidStoreUrl)) {\n Tool.goAppStoreReview();\n return;\n }\n\n // 第二优先级:App 内跳转\n const ret = getAppInsideQueryParams(url);\n if (ret.page) {\n console.log('App 内跳转', ret);\n GlobalNavigation?.navigate(ret.page, ret.params);\n return;\n }\n\n // 第三优先级:外部跳转 AppStore、H5 等\n Linking.canOpenURL(url)\n .then((supported) => {\n if (supported) {\n console.log('外部跳转', url);\n Linking.openURL(url);\n } else {\n console.error('无法跳转', url);\n }\n })\n .catch(() => {\n console.error('无法跳转', url);\n });\n },\n\n init: (navigation: NavigationProp<ParamListBase>) => {\n GlobalNavigation = navigation;\n Linking.getInitialURL()\n .then((url) => {\n // 此处 url 都是官网开头\n LinkingManager.openPage(url ?? undefined);\n })\n .catch((err) => console.error('获取初始URL时出错:', err));\n\n Linking.addEventListener('url', (event) => {\n // 此处 url 都是官网开头\n LinkingManager.openPage(event.url);\n });\n },\n};\n"],"mappings":"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"}
|