Skip to content

Commit ed512fb

Browse files
committed
fix(component): 修复版本号判断错误问题
1 parent ba13131 commit ed512fb

File tree

12 files changed

+274
-357
lines changed

12 files changed

+274
-357
lines changed

.eslintcache

Lines changed: 0 additions & 1 deletion
This file was deleted.

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ module.exports = {
66
browser: true,
77
},
88
rules: {
9+
'no-plusplus': 'off',
910
'import/no-extraneous-dependencies': ['error', { peerDependencies: true }],
1011
'prettier/prettier': 'error',
1112
'unicorn/prevent-abbreviations': 'off',

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
node_modules
22
.DS_Store
3+
.eslintcache

.npmignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
node_modules
22
.DS_Store
3+
.eslintcache
34

45
example
56
screenshots

dist/index.cjs.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,25 @@ function _defineProperty(obj, key, value) {
3737
return obj;
3838
}
3939

40-
var ua = navigator.userAgent || '';
40+
var ua = navigator.userAgent || ''; // 版本号比较
41+
42+
var semverCompare = function semverCompare(verionA, versionB) {
43+
var isNaN = Number.isNaN;
44+
var splitA = verionA.split('.');
45+
var splitB = versionB.split('.');
46+
47+
for (var i = 0; i < 3; i++) {
48+
var snippetA = Number(splitA[i]);
49+
var snippetB = Number(splitB[i]);
50+
if (snippetA > snippetB) return 1;
51+
if (snippetB > snippetA) return -1; // e.g. '1.0.0-rc' -- Number('0-rc') = NaN
52+
53+
if (!isNaN(snippetA) && isNaN(snippetB)) return 1;
54+
if (isNaN(snippetA) && !isNaN(snippetB)) return -1;
55+
}
56+
57+
return 0;
58+
};
4159
/**
4260
* 获取 ios 大版本号
4361
*/
@@ -334,7 +352,7 @@ var CallApp = /*#__PURE__*/function () {
334352
// 近期ios版本qq禁止了scheme和universalLink唤起app,安卓不受影响 - 18年12月23日
335353
// ios qq浏览器禁止了scheme和universalLink - 2019年5月1日
336354
// ios 微信自 7.0.5 版本放开了 Universal Link 的限制
337-
if (isWechat && getWeChatVersion() < '7.0.5' || isQQ || isQQBrowser) {
355+
if (isWechat && semverCompare(getWeChatVersion(), '7.0.5') === -1 || isQQ || isQQBrowser) {
338356
evokeByLocation(appstore);
339357
} else if (getIOSVersion() < 9) {
340358
evokeByIFrame(schemeURL);

dist/index.esm.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,25 @@ function _defineProperty(obj, key, value) {
3535
return obj;
3636
}
3737

38-
var ua = navigator.userAgent || '';
38+
var ua = navigator.userAgent || ''; // 版本号比较
39+
40+
var semverCompare = function semverCompare(verionA, versionB) {
41+
var isNaN = Number.isNaN;
42+
var splitA = verionA.split('.');
43+
var splitB = versionB.split('.');
44+
45+
for (var i = 0; i < 3; i++) {
46+
var snippetA = Number(splitA[i]);
47+
var snippetB = Number(splitB[i]);
48+
if (snippetA > snippetB) return 1;
49+
if (snippetB > snippetA) return -1; // e.g. '1.0.0-rc' -- Number('0-rc') = NaN
50+
51+
if (!isNaN(snippetA) && isNaN(snippetB)) return 1;
52+
if (isNaN(snippetA) && !isNaN(snippetB)) return -1;
53+
}
54+
55+
return 0;
56+
};
3957
/**
4058
* 获取 ios 大版本号
4159
*/
@@ -332,7 +350,7 @@ var CallApp = /*#__PURE__*/function () {
332350
// 近期ios版本qq禁止了scheme和universalLink唤起app,安卓不受影响 - 18年12月23日
333351
// ios qq浏览器禁止了scheme和universalLink - 2019年5月1日
334352
// ios 微信自 7.0.5 版本放开了 Universal Link 的限制
335-
if (isWechat && getWeChatVersion() < '7.0.5' || isQQ || isQQBrowser) {
353+
if (isWechat && semverCompare(getWeChatVersion(), '7.0.5') === -1 || isQQ || isQQBrowser) {
336354
evokeByLocation(appstore);
337355
} else if (getIOSVersion() < 9) {
338356
evokeByIFrame(schemeURL);

dist/index.iife.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,25 @@ var CallApp = (function () {
3838
return obj;
3939
}
4040

41-
var ua = navigator.userAgent || '';
41+
var ua = navigator.userAgent || ''; // 版本号比较
42+
43+
var semverCompare = function semverCompare(verionA, versionB) {
44+
var isNaN = Number.isNaN;
45+
var splitA = verionA.split('.');
46+
var splitB = versionB.split('.');
47+
48+
for (var i = 0; i < 3; i++) {
49+
var snippetA = Number(splitA[i]);
50+
var snippetB = Number(splitB[i]);
51+
if (snippetA > snippetB) return 1;
52+
if (snippetB > snippetA) return -1; // e.g. '1.0.0-rc' -- Number('0-rc') = NaN
53+
54+
if (!isNaN(snippetA) && isNaN(snippetB)) return 1;
55+
if (isNaN(snippetA) && !isNaN(snippetB)) return -1;
56+
}
57+
58+
return 0;
59+
};
4260
/**
4361
* 获取 ios 大版本号
4462
*/
@@ -335,7 +353,7 @@ var CallApp = (function () {
335353
// 近期ios版本qq禁止了scheme和universalLink唤起app,安卓不受影响 - 18年12月23日
336354
// ios qq浏览器禁止了scheme和universalLink - 2019年5月1日
337355
// ios 微信自 7.0.5 版本放开了 Universal Link 的限制
338-
if (isWechat && getWeChatVersion() < '7.0.5' || isQQ || isQQBrowser) {
356+
if (isWechat && semverCompare(getWeChatVersion(), '7.0.5') === -1 || isQQ || isQQBrowser) {
339357
evokeByLocation(appstore);
340358
} else if (getIOSVersion() < 9) {
341359
evokeByIFrame(schemeURL);

dist/type/browser.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
export declare const semverCompare: (verionA: string, versionB: string) => -1 | 0 | 1;
12
/**
23
* 获取 ios 大版本号
34
*/

0 commit comments

Comments
 (0)