@taole/dev-helper 0.1.10 → 0.1.11
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/dist/open-diandian.umd.js +24 -3
- package/open-diandian/index.js +24 -3
- package/package.json +1 -1
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
this._alink_link = '';
|
|
67
67
|
this._alink_fin_5s = '';
|
|
68
68
|
this._fin5sTimer = null;
|
|
69
|
+
this._fin5sVisHandler = null;
|
|
69
70
|
this._template = null;
|
|
70
71
|
this._alink = null;
|
|
71
72
|
this._isApp = (window.AndroidJs && window.AndroidJs.publicInteraction) || (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.AndroidJs);
|
|
@@ -129,16 +130,29 @@
|
|
|
129
130
|
tmplnk.click();
|
|
130
131
|
this._log('open-diandian: wx-open-launch-app error, go to fallback link', e, this._alink_fallback);
|
|
131
132
|
if (this._alink_fin_5s) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
this._cancelFinalFallback();
|
|
134
|
+
this._fin5sVisHandler = () => {
|
|
135
|
+
if (document.hidden) {
|
|
136
|
+
this._log('open-diandian: page hidden, fallback succeeded, cancel final fallback');
|
|
137
|
+
this._cancelFinalFallback();
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
document.addEventListener('visibilitychange', this._fin5sVisHandler);
|
|
135
141
|
this._log('open-diandian: schedule final fallback 5s later', this._alink_fin_5s);
|
|
136
142
|
this._fin5sTimer = setTimeout(() => {
|
|
137
143
|
this._fin5sTimer = null;
|
|
144
|
+
if (this._fin5sVisHandler) {
|
|
145
|
+
document.removeEventListener('visibilitychange', this._fin5sVisHandler);
|
|
146
|
+
this._fin5sVisHandler = null;
|
|
147
|
+
}
|
|
138
148
|
if (!this._isConnected) {
|
|
139
149
|
this._log('open-diandian: disconnected, skip final fallback');
|
|
140
150
|
return;
|
|
141
151
|
}
|
|
152
|
+
if (document.hidden) {
|
|
153
|
+
this._log('open-diandian: page hidden when timer fired, skip final fallback');
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
142
156
|
this._log('open-diandian: final fallback go', this._alink_fin_5s);
|
|
143
157
|
var lnkFinal = document.createElement("a");
|
|
144
158
|
lnkFinal.href = this._alink_fin_5s;
|
|
@@ -212,10 +226,17 @@
|
|
|
212
226
|
this._alink.remove();
|
|
213
227
|
this._alink = null;
|
|
214
228
|
}
|
|
229
|
+
this._cancelFinalFallback();
|
|
230
|
+
}
|
|
231
|
+
_cancelFinalFallback() {
|
|
215
232
|
if (this._fin5sTimer) {
|
|
216
233
|
clearTimeout(this._fin5sTimer);
|
|
217
234
|
this._fin5sTimer = null;
|
|
218
235
|
}
|
|
236
|
+
if (this._fin5sVisHandler) {
|
|
237
|
+
document.removeEventListener('visibilitychange', this._fin5sVisHandler);
|
|
238
|
+
this._fin5sVisHandler = null;
|
|
239
|
+
}
|
|
219
240
|
}
|
|
220
241
|
_initClipboardText() {
|
|
221
242
|
// 延迟20ms执行,如果20ms后卸载了,直接不执行了
|
package/open-diandian/index.js
CHANGED
|
@@ -61,6 +61,7 @@ function defineTag() {
|
|
|
61
61
|
this._alink_link = '';
|
|
62
62
|
this._alink_fin_5s = '';
|
|
63
63
|
this._fin5sTimer = null;
|
|
64
|
+
this._fin5sVisHandler = null;
|
|
64
65
|
this._template = null;
|
|
65
66
|
this._alink = null;
|
|
66
67
|
this._isApp = (window.AndroidJs && window.AndroidJs.publicInteraction) || (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.AndroidJs);
|
|
@@ -124,16 +125,29 @@ function defineTag() {
|
|
|
124
125
|
tmplnk.click();
|
|
125
126
|
this._log('open-diandian: wx-open-launch-app error, go to fallback link', e, this._alink_fallback);
|
|
126
127
|
if (this._alink_fin_5s) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
this._cancelFinalFallback();
|
|
129
|
+
this._fin5sVisHandler = () => {
|
|
130
|
+
if (document.hidden) {
|
|
131
|
+
this._log('open-diandian: page hidden, fallback succeeded, cancel final fallback');
|
|
132
|
+
this._cancelFinalFallback();
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
document.addEventListener('visibilitychange', this._fin5sVisHandler);
|
|
130
136
|
this._log('open-diandian: schedule final fallback 5s later', this._alink_fin_5s);
|
|
131
137
|
this._fin5sTimer = setTimeout(() => {
|
|
132
138
|
this._fin5sTimer = null;
|
|
139
|
+
if (this._fin5sVisHandler) {
|
|
140
|
+
document.removeEventListener('visibilitychange', this._fin5sVisHandler);
|
|
141
|
+
this._fin5sVisHandler = null;
|
|
142
|
+
}
|
|
133
143
|
if (!this._isConnected) {
|
|
134
144
|
this._log('open-diandian: disconnected, skip final fallback');
|
|
135
145
|
return;
|
|
136
146
|
}
|
|
147
|
+
if (document.hidden) {
|
|
148
|
+
this._log('open-diandian: page hidden when timer fired, skip final fallback');
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
137
151
|
this._log('open-diandian: final fallback go', this._alink_fin_5s);
|
|
138
152
|
var lnkFinal = document.createElement("a");
|
|
139
153
|
lnkFinal.href = this._alink_fin_5s;
|
|
@@ -207,10 +221,17 @@ function defineTag() {
|
|
|
207
221
|
this._alink.remove();
|
|
208
222
|
this._alink = null;
|
|
209
223
|
}
|
|
224
|
+
this._cancelFinalFallback();
|
|
225
|
+
}
|
|
226
|
+
_cancelFinalFallback() {
|
|
210
227
|
if (this._fin5sTimer) {
|
|
211
228
|
clearTimeout(this._fin5sTimer);
|
|
212
229
|
this._fin5sTimer = null;
|
|
213
230
|
}
|
|
231
|
+
if (this._fin5sVisHandler) {
|
|
232
|
+
document.removeEventListener('visibilitychange', this._fin5sVisHandler);
|
|
233
|
+
this._fin5sVisHandler = null;
|
|
234
|
+
}
|
|
214
235
|
}
|
|
215
236
|
_initClipboardText() {
|
|
216
237
|
// 延迟20ms执行,如果20ms后卸载了,直接不执行了
|