@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.
@@ -44,7 +44,7 @@ const AppLink = exports.AppLink = {
44
44
  /* 测试用例:
45
45
  详见 https://docs.qq.com/sheet/DSHpXb29STWpYempK?tab=w20187
46
46
  */
47
- open: (url, ignoreSelf) => {
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
- // 如果是官网,则不再处理,因为 App 内跳转已经处理了
69
- if (ignoreSelf && url.startsWith(_Tool.ToolkitConfig.AppWebsite)) {
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, true);
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, true);
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","ignoreSelf","console","log","AndroidStoreUrl","Tool","goAppStoreReview","_GlobalNavigation","navigate","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, ignoreSelf?: boolean) => {\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 // 如果是官网,则不再处理,因为 App 内跳转已经处理了\n if (ignoreSelf && url.startsWith(ToolkitConfig.AppWebsite)) {\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, true);\n })\n .catch((err) => console.error('获取初始URL时出错:', err));\n }, 1500);\n\n Linking.addEventListener('url', (event) => {\n // 此处 url 都是官网开头\n AppLink.open(event.url, true);\n });\n },\n};\n"],"mappings":"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"}
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":"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"}
@@ -37,7 +37,7 @@ export const AppLink = {
37
37
  /* 测试用例:
38
38
  详见 https://docs.qq.com/sheet/DSHpXb29STWpYempK?tab=w20187
39
39
  */
40
- open: (url, ignoreSelf) => {
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
- // 如果是官网,则不再处理,因为 App 内跳转已经处理了
62
- if (ignoreSelf && url.startsWith(ToolkitConfig.AppWebsite)) {
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, true);
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, true);
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","ignoreSelf","console","log","AndroidStoreUrl","goAppStoreReview","_GlobalNavigation","navigate","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, ignoreSelf?: boolean) => {\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 // 如果是官网,则不再处理,因为 App 内跳转已经处理了\n if (ignoreSelf && url.startsWith(ToolkitConfig.AppWebsite)) {\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, true);\n })\n .catch((err) => console.error('获取初始URL时出错:', err));\n }, 1500);\n\n Linking.addEventListener('url', (event) => {\n // 此处 url 都是官网开头\n AppLink.open(event.url, true);\n });\n },\n};\n"],"mappings":"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"}
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, ignoreSelf?: boolean) => void;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norcy/react-native-toolkit",
3
- "version": "0.1.102",
3
+ "version": "0.1.103",
4
4
  "description": "My Toolkit",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
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, ignoreSelf?: boolean) => {
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
- // 如果是官网,则不再处理,因为 App 内跳转已经处理了
67
- if (ignoreSelf && url.startsWith(ToolkitConfig.AppWebsite)) {
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, true);
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, true);
109
+ AppLink.open(event.url);
107
110
  });
108
111
  },
109
112
  };
package/.DS_Store DELETED
Binary file
@@ -1,9 +0,0 @@
1
- {
2
- "editor.formatOnSave": true,
3
- "editor.codeActionsOnSave": {
4
- "source.organizeImports": "explicit"
5
- },
6
- "prettier.tabWidth": 4,
7
- "prettier.jsxBracketSameLine": true,
8
- "editor.tabSize": 2
9
- }
package/ios/.DS_Store DELETED
Binary file
@@ -1,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Workspace
3
- version = "1.0">
4
- </Workspace>
package/src/.DS_Store DELETED
Binary file