Браузеры старых версий Android не имеют некоторых функций JS? - PullRequest
0 голосов
/ 13 июня 2018

Протестировав приложение с веб-представлением, содержащим html-файл на устройстве Oreo, все работает полностью.Однако при использовании устройства Kitkat (эмулятора) я получаю сообщение об ошибке Possible Unhandled Promise Rejection: "Object function Object() { [native code] } has no method 'entries'".

Это было связано с тем, что я использовал Object.entries() в html.Есть ли способ обойти это?Версия браузера в эмуляторе Kitkat - 4.4.2-4729339, и эмулятор является эмулятором по умолчанию в Android Studio.

1 Ответ

0 голосов
/ 13 июня 2018

Чтобы новые функции работали в старых браузерах, вы можете использовать так называемые Polyfills, которые в основном можно найти на github или в Mozilla Developer Network.

То, что вы ищете, - это Object.entries() polyfill:

if (!Object.entries)
  Object.entries = function( obj ){
    var ownProps = Object.keys( obj ),
        i = ownProps.length,
        resArray = new Array(i); // preallocate the Array
    while (i--)
      resArray[i] = [ownProps[i], obj[ownProps[i]]];

    return resArray;
  };

(Код взят из: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries#Polyfill)

В общем, я рекомендую использовать caniuse.com , где вы можете проверить, какой браузер поддерживает какую функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...