瀏覽代碼

[RN] Fix iOS lockups / resprings

Apparently iOS doesn't like dangling background tasks very much, so update the
background timers plugin with a version which fixes this.

https://github.com/ocetnik/react-native-background-timer/pull/38

Also accomodate for the API changes upstream.

Credits to @lyubomir for finding the needle in the haystack.
j8
Saúl Ibarra Corretgé 8 年之前
父節點
當前提交
4e4a9012c2
共有 2 個檔案被更改,包括 9 行新增5 行删除
  1. 1
    1
      package.json
  2. 8
    4
      react/features/base/lib-jitsi-meet/native/polyfills-browser.js

+ 1
- 1
package.json 查看文件

@@ -47,7 +47,7 @@
47 47
     "react-dom": "15.4.2",
48 48
     "react-i18next": "4.1.0",
49 49
     "react-native": "0.42.3",
50
-    "react-native-background-timer": "1.0.2",
50
+    "react-native-background-timer": "saghul/react-native-background-timer#ios-end-task",
51 51
     "react-native-immersive": "0.0.5",
52 52
     "react-native-keep-awake": "2.0.4",
53 53
     "react-native-locale-detector": "1.0.1",

+ 8
- 4
react/features/base/lib-jitsi-meet/native/polyfills-browser.js 查看文件

@@ -372,9 +372,13 @@ function _visitNode(node, callback) {
372 372
     // Required by:
373 373
     // - lib-jitsi-meet
374 374
     // - Strophe
375
-    global.clearTimeout = window.clearTimeout = BackgroundTimer.clearTimeout;
376
-    global.clearInterval = window.clearInterval = BackgroundTimer.clearInterval;
377
-    global.setInterval = window.setInterval = BackgroundTimer.setInterval;
378
-    global.setTimeout = window.setTimeout = BackgroundTimer.setTimeout;
375
+    global.clearTimeout = window.clearTimeout
376
+        = BackgroundTimer.clearTimeout.bind(BackgroundTimer);
377
+    global.clearInterval = window.clearInterval
378
+        = BackgroundTimer.clearInterval.bind(BackgroundTimer);
379
+    global.setInterval = window.setInterval
380
+        = BackgroundTimer.setInterval.bind(BackgroundTimer);
381
+    global.setTimeout = window.setTimeout
382
+        = BackgroundTimer.setTimeout.bind(BackgroundTimer);
379 383
 
380 384
 })(global || window || this); // eslint-disable-line no-invalid-this

Loading…
取消
儲存