@norcy/react-native-toolkit 0.1.102 → 0.1.103
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/AppLink.js +6 -5
- package/lib/commonjs/AppLink.js.map +1 -1
- package/lib/module/AppLink.js +6 -5
- package/lib/module/AppLink.js.map +1 -1
- package/lib/typescript/AppLink.d.ts +1 -1
- package/package.json +1 -1
- package/src/AppLink.ts +8 -5
- package/.DS_Store +0 -0
- package/.vscode/settings.json +0 -9
- package/ios/.DS_Store +0 -0
- package/ios/ReactNativeToolkit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
- package/src/.DS_Store +0 -0
- package/yarn-error.log +0 -11644
package/lib/commonjs/AppLink.js
CHANGED
@@ -44,7 +44,7 @@ const AppLink = exports.AppLink = {
|
|
44
44
|
/* 测试用例:
|
45
45
|
详见 https://docs.qq.com/sheet/DSHpXb29STWpYempK?tab=w20187
|
46
46
|
*/
|
47
|
-
open:
|
47
|
+
open: url => {
|
48
48
|
if (!url) {
|
49
49
|
return;
|
50
50
|
}
|
@@ -65,8 +65,9 @@ const AppLink = exports.AppLink = {
|
|
65
65
|
return;
|
66
66
|
}
|
67
67
|
|
68
|
-
//
|
69
|
-
|
68
|
+
// 走到这里不可能再跳转自己了,否则会出现类似 yiyue:// 这样的无限跳转
|
69
|
+
const isSelf = url.startsWith(_Tool.ToolkitConfig.AppScheme) || url.startsWith(_Tool.ToolkitConfig.AppWebsite);
|
70
|
+
if (isSelf) {
|
70
71
|
return;
|
71
72
|
}
|
72
73
|
|
@@ -94,12 +95,12 @@ const AppLink = exports.AppLink = {
|
|
94
95
|
setTimeout(() => {
|
95
96
|
_reactNative.Linking.getInitialURL().then(url => {
|
96
97
|
// 此处 url 都是官网开头
|
97
|
-
AppLink.open(url !== null && url !== void 0 ? url : undefined
|
98
|
+
AppLink.open(url !== null && url !== void 0 ? url : undefined);
|
98
99
|
}).catch(err => console.error('获取初始URL时出错:', err));
|
99
100
|
}, 1500);
|
100
101
|
_reactNative.Linking.addEventListener('url', event => {
|
101
102
|
// 此处 url 都是官网开头
|
102
|
-
AppLink.open(event.url
|
103
|
+
AppLink.open(event.url);
|
103
104
|
});
|
104
105
|
}
|
105
106
|
};
|
@@ -1 +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","AppLink","exports","open","
|
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","AppLink","exports","open","console","log","AndroidStoreUrl","Tool","goAppStoreReview","_GlobalNavigation","navigate","isSelf","Linking","canOpenURL","then","supported","openURL","error","catch","e","openPage","_GlobalNavigation2","init","navigation","setTimeout","getInitialURL","undefined","err","addEventListener","event"],"sources":["AppLink.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 AppLink = {\n /* 测试用例:\n 详见 https://docs.qq.com/sheet/DSHpXb29STWpYempK?tab=w20187\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 // 走到这里不可能再跳转自己了,否则会出现类似 yiyue:// 这样的无限跳转\n const isSelf =\n url.startsWith(ToolkitConfig.AppScheme) ||\n url.startsWith(ToolkitConfig.AppWebsite);\n if (isSelf) {\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((e) => {\n console.error('无法跳转', url, e);\n });\n },\n\n openPage: (page: string, params?: object) => {\n if (!page) {\n return;\n }\n GlobalNavigation?.navigate(page, params);\n },\n\n init: (navigation: NavigationProp<ParamListBase>) => {\n GlobalNavigation = navigation;\n setTimeout(() => {\n Linking.getInitialURL()\n .then((url) => {\n // 此处 url 都是官网开头\n AppLink.open(url ?? undefined);\n })\n .catch((err) => console.error('获取初始URL时出错:', err));\n }, 1500);\n\n Linking.addEventListener('url', (event) => {\n // 此处 url 都是官网开头\n AppLink.open(event.url);\n });\n },\n};\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA6C,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE7C,MAAMG,uBAAuB,GAC3BC,GAAW,IAC2B;EACtC;EACA;EACA;EACA;EACA;EACA,MAAMC,GAAG,GAAG;IAAEC,IAAI,EAAE,EAAE;IAAEC,MAAM,EAAE,CAAC;EAAE,CAAC;EAEpC,MAAM,CAACC,MAAM,EAAEC,KAAK,CAAC,GAAGL,GAAG,CAACM,KAAK,CAAC,GAAG,CAAC;EACtC,MAAMH,MAAM,GAAGI,oBAAW,CAACC,KAAK,CAACH,KAAK,CAA8B;EAEpE,IAAID,MAAM,CAACK,UAAU,CAACC,mBAAa,CAACC,UAAU,CAAC,IAAIR,MAAM,CAACD,IAAI,EAAE;IAC9D;IACAD,GAAG,CAACC,IAAI,GAAGC,MAAM,CAACD,IAAI;IACtB,OAAOC,MAAM,CAACD,IAAI;IAClBD,GAAG,CAACE,MAAM,GAAGA,MAAM;EACrB,CAAC,MAAM,IAAIC,MAAM,CAACK,UAAU,CAACC,mBAAa,CAACE,SAAS,CAAC,EAAE;IACrD;IACA,MAAMC,QAAQ,GAAGT,MAAM,CAACU,SAAS,CAACJ,mBAAa,CAACE,SAAS,CAACG,MAAM,CAAC;IACjEd,GAAG,CAACC,IAAI,GAAGW,QAAQ;IACnBZ,GAAG,CAACE,MAAM,GAAGA,MAAM;EACrB,CAAC,MAAM,IAAIC,MAAM,CAACK,UAAU,CAAC,MAAM,CAAC,EAAE;IACpC;EAAA,CACD,MAAM;IACL;IACAR,GAAG,CAACC,IAAI,GAAGE,MAAM;IACjBH,GAAG,CAACE,MAAM,GAAGA,MAAM;EACrB;EACA,OAAOF,GAAG;AACZ,CAAC;AAED,IAAIe,gBAAsD,GAAG,IAAI;AAE1D,MAAMC,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG;EACrB;AACF;AACA;EACEE,IAAI,EAAGnB,GAAY,IAAK;IACtB,IAAI,CAACA,GAAG,EAAE;MACR;IACF;IAEAoB,OAAO,CAACC,GAAG,CAAC,UAAU,EAAErB,GAAG,CAAC;;IAE5B;IACA,IAAIA,GAAG,CAACS,UAAU,CAACC,mBAAa,CAACY,eAAe,CAAC,EAAE;MACjDC,UAAI,CAACC,gBAAgB,CAAC,CAAC;MACvB;IACF;;IAEA;IACA,MAAMvB,GAAG,GAAGF,uBAAuB,CAACC,GAAG,CAAC;IACxC,IAAIC,GAAG,CAACC,IAAI,EAAE;MAAA,IAAAuB,iBAAA;MACZL,OAAO,CAACC,GAAG,CAAC,SAAS,EAAEpB,GAAG,CAAC;MAC3B,CAAAwB,iBAAA,GAAAT,gBAAgB,cAAAS,iBAAA,eAAhBA,iBAAA,CAAkBC,QAAQ,CAACzB,GAAG,CAACC,IAAI,EAAED,GAAG,CAACE,MAAM,CAAC;MAChD;IACF;;IAEA;IACA,MAAMwB,MAAM,GACV3B,GAAG,CAACS,UAAU,CAACC,mBAAa,CAACE,SAAS,CAAC,IACvCZ,GAAG,CAACS,UAAU,CAACC,mBAAa,CAACC,UAAU,CAAC;IAC1C,IAAIgB,MAAM,EAAE;MACV;IACF;;IAEA;IACAC,oBAAO,CAACC,UAAU,CAAC7B,GAAG,CAAC,CACpB8B,IAAI,CAAEC,SAAS,IAAK;MACnB,IAAIA,SAAS,EAAE;QACbX,OAAO,CAACC,GAAG,CAAC,MAAM,EAAErB,GAAG,CAAC;QACxB4B,oBAAO,CAACI,OAAO,CAAChC,GAAG,CAAC;MACtB,CAAC,MAAM;QACLoB,OAAO,CAACa,KAAK,CAAC,MAAM,EAAEjC,GAAG,CAAC;MAC5B;IACF,CAAC,CAAC,CACDkC,KAAK,CAAEC,CAAC,IAAK;MACZf,OAAO,CAACa,KAAK,CAAC,MAAM,EAAEjC,GAAG,EAAEmC,CAAC,CAAC;IAC/B,CAAC,CAAC;EACN,CAAC;EAEDC,QAAQ,EAAEA,CAAClC,IAAY,EAAEC,MAAe,KAAK;IAAA,IAAAkC,kBAAA;IAC3C,IAAI,CAACnC,IAAI,EAAE;MACT;IACF;IACA,CAAAmC,kBAAA,GAAArB,gBAAgB,cAAAqB,kBAAA,eAAhBA,kBAAA,CAAkBX,QAAQ,CAACxB,IAAI,EAAEC,MAAM,CAAC;EAC1C,CAAC;EAEDmC,IAAI,EAAGC,UAAyC,IAAK;IACnDvB,gBAAgB,GAAGuB,UAAU;IAC7BC,UAAU,CAAC,MAAM;MACfZ,oBAAO,CAACa,aAAa,CAAC,CAAC,CACpBX,IAAI,CAAE9B,GAAG,IAAK;QACb;QACAiB,OAAO,CAACE,IAAI,CAACnB,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI0C,SAAS,CAAC;MAChC,CAAC,CAAC,CACDR,KAAK,CAAES,GAAG,IAAKvB,OAAO,CAACa,KAAK,CAAC,aAAa,EAAEU,GAAG,CAAC,CAAC;IACtD,CAAC,EAAE,IAAI,CAAC;IAERf,oBAAO,CAACgB,gBAAgB,CAAC,KAAK,EAAGC,KAAK,IAAK;MACzC;MACA5B,OAAO,CAACE,IAAI,CAAC0B,KAAK,CAAC7C,GAAG,CAAC;IACzB,CAAC,CAAC;EACJ;AACF,CAAC"}
|
package/lib/module/AppLink.js
CHANGED
@@ -37,7 +37,7 @@ export const AppLink = {
|
|
37
37
|
/* 测试用例:
|
38
38
|
详见 https://docs.qq.com/sheet/DSHpXb29STWpYempK?tab=w20187
|
39
39
|
*/
|
40
|
-
open:
|
40
|
+
open: url => {
|
41
41
|
if (!url) {
|
42
42
|
return;
|
43
43
|
}
|
@@ -58,8 +58,9 @@ export const AppLink = {
|
|
58
58
|
return;
|
59
59
|
}
|
60
60
|
|
61
|
-
//
|
62
|
-
|
61
|
+
// 走到这里不可能再跳转自己了,否则会出现类似 yiyue:// 这样的无限跳转
|
62
|
+
const isSelf = url.startsWith(ToolkitConfig.AppScheme) || url.startsWith(ToolkitConfig.AppWebsite);
|
63
|
+
if (isSelf) {
|
63
64
|
return;
|
64
65
|
}
|
65
66
|
|
@@ -87,12 +88,12 @@ export const AppLink = {
|
|
87
88
|
setTimeout(() => {
|
88
89
|
Linking.getInitialURL().then(url => {
|
89
90
|
// 此处 url 都是官网开头
|
90
|
-
AppLink.open(url !== null && url !== void 0 ? url : undefined
|
91
|
+
AppLink.open(url !== null && url !== void 0 ? url : undefined);
|
91
92
|
}).catch(err => console.error('获取初始URL时出错:', err));
|
92
93
|
}, 1500);
|
93
94
|
Linking.addEventListener('url', event => {
|
94
95
|
// 此处 url 都是官网开头
|
95
|
-
AppLink.open(event.url
|
96
|
+
AppLink.open(event.url);
|
96
97
|
});
|
97
98
|
}
|
98
99
|
};
|
@@ -1 +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","AppLink","open","
|
1
|
+
{"version":3,"names":["queryString","Linking","Tool","ToolkitConfig","getAppInsideQueryParams","url","ret","page","params","scheme","query","split","parse","startsWith","AppWebsite","AppScheme","pageName","substring","length","GlobalNavigation","AppLink","open","console","log","AndroidStoreUrl","goAppStoreReview","_GlobalNavigation","navigate","isSelf","canOpenURL","then","supported","openURL","error","catch","e","openPage","_GlobalNavigation2","init","navigation","setTimeout","getInitialURL","undefined","err","addEventListener","event"],"sources":["AppLink.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 AppLink = {\n /* 测试用例:\n 详见 https://docs.qq.com/sheet/DSHpXb29STWpYempK?tab=w20187\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 // 走到这里不可能再跳转自己了,否则会出现类似 yiyue:// 这样的无限跳转\n const isSelf =\n url.startsWith(ToolkitConfig.AppScheme) ||\n url.startsWith(ToolkitConfig.AppWebsite);\n if (isSelf) {\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((e) => {\n console.error('无法跳转', url, e);\n });\n },\n\n openPage: (page: string, params?: object) => {\n if (!page) {\n return;\n }\n GlobalNavigation?.navigate(page, params);\n },\n\n init: (navigation: NavigationProp<ParamListBase>) => {\n GlobalNavigation = navigation;\n setTimeout(() => {\n Linking.getInitialURL()\n .then((url) => {\n // 此处 url 都是官网开头\n AppLink.open(url ?? undefined);\n })\n .catch((err) => console.error('获取初始URL时出错:', err));\n }, 1500);\n\n Linking.addEventListener('url', (event) => {\n // 此处 url 都是官网开头\n AppLink.open(event.url);\n });\n },\n};\n"],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { NavigationProp, ParamListBase } from '@react-navigation/native';
|
2
2
|
export declare const AppLink: {
|
3
|
-
open: (url?: string
|
3
|
+
open: (url?: string) => void;
|
4
4
|
openPage: (page: string, params?: object) => void;
|
5
5
|
init: (navigation: NavigationProp<ParamListBase>) => void;
|
6
6
|
};
|
package/package.json
CHANGED
package/src/AppLink.ts
CHANGED
@@ -42,7 +42,7 @@ export const AppLink = {
|
|
42
42
|
/* 测试用例:
|
43
43
|
详见 https://docs.qq.com/sheet/DSHpXb29STWpYempK?tab=w20187
|
44
44
|
*/
|
45
|
-
open: (url?: string
|
45
|
+
open: (url?: string) => {
|
46
46
|
if (!url) {
|
47
47
|
return;
|
48
48
|
}
|
@@ -63,8 +63,11 @@ export const AppLink = {
|
|
63
63
|
return;
|
64
64
|
}
|
65
65
|
|
66
|
-
//
|
67
|
-
|
66
|
+
// 走到这里不可能再跳转自己了,否则会出现类似 yiyue:// 这样的无限跳转
|
67
|
+
const isSelf =
|
68
|
+
url.startsWith(ToolkitConfig.AppScheme) ||
|
69
|
+
url.startsWith(ToolkitConfig.AppWebsite);
|
70
|
+
if (isSelf) {
|
68
71
|
return;
|
69
72
|
}
|
70
73
|
|
@@ -96,14 +99,14 @@ export const AppLink = {
|
|
96
99
|
Linking.getInitialURL()
|
97
100
|
.then((url) => {
|
98
101
|
// 此处 url 都是官网开头
|
99
|
-
AppLink.open(url ?? undefined
|
102
|
+
AppLink.open(url ?? undefined);
|
100
103
|
})
|
101
104
|
.catch((err) => console.error('获取初始URL时出错:', err));
|
102
105
|
}, 1500);
|
103
106
|
|
104
107
|
Linking.addEventListener('url', (event) => {
|
105
108
|
// 此处 url 都是官网开头
|
106
|
-
AppLink.open(event.url
|
109
|
+
AppLink.open(event.url);
|
107
110
|
});
|
108
111
|
},
|
109
112
|
};
|
package/.DS_Store
DELETED
Binary file
|
package/.vscode/settings.json
DELETED
package/ios/.DS_Store
DELETED
Binary file
|
package/src/.DS_Store
DELETED
Binary file
|