Правильное использование Intl в приложении Android React Native - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь использовать числовой форматер Intl, который отлично работает на iOS и когда отладчик подключен к iOS или Android, но не работает на Android без отладчика, подключенного из-за устаревшего JSC в Android.

После небольшого исследования я нашел два возможных решения:

  • Использование Intl polyfill
  • Использование пользовательских JSC в Android

Iпопробовал Intl polyfill сначала так после установки intl и react-intl с использованием пряжи:

//in my app's index.js
if (!global.Intl) {
    global.Intl = require('intl');
}

Хотя он все еще говорит ReferenceError: Can't find variable: Intl.

Затем я сдался и попыталсявключить пользовательский JSC (я подтвердил, что на пользовательский AAR ссылаются правильно), хотя я все еще получаю ту же ошибку.Независимо от того, что я делаю, я не могу заставить Intl работать на Android без подключенного отладчика.

Что я делаю не так?(Я на React Native 0.59.9)

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Если вы используете пользовательский JSC, то не забудьте импортировать международную версию как , объясненную в прочтенном скрипте JSC Android Buildscripts :

Для React Native версии 0.59 замените оригинальный идентификатор артефакта на Android-ОНК-аэроропорт

dependencies {
+   // Make sure to put android-jsc at the the first
+   implementation "org.webkit:android-jsc-intl:r241213"
+
    compile fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
}
0 голосов
/ 10 июля 2019

Я хотел удалить этот вопрос, но не могу, так как уже есть другой ответ.


Это не имеет никакого отношения к АО.Мой скрипт сборки не обновлял APK должным образом, пока я думал об этом, и я снова и снова пробовал старый поддельный APK.В противном случае, видимо, я все делал правильно, так как теперь он работает с новым APK.

...