Реагировать на развертывание файлов на Android
Я новичок в React Native. Я хочу знать, как можно развернуть реагирующую нативную часть или код, такой как файлы javascript и ресурсы, на сервере, а затем использовать его.
В настоящее время он отображается как локальный
Пожалуйста, дайте мне знать, как развернуть его на сервере, также возможно или нет.
Нужно ли обновлять приложение в магазине Play каждый раз, когда я что-то изменяю в реагирующей части моего кода?
что именно делает push-код, и есть ли способ, с помощью которого я могу загрузить свой реагирующий нативный пакет с сервера и динамически обновлять приложение
3 ответа
React-native компилируется до двух родных языков. По сути, у вас есть 2 приложения, не из них веб.
Вы можете иметь удаленные ресурсы изображений на сервере и использовать URL-адрес в исходном коде реакции в сочетании с кешем (чтобы вам не приходилось загружать ресурс каждый раз).
Что касается файлов JavaScript, я бы сказал, нет. Если вы не создадите сервер и не запросите функциональность через вызовы API.
И нет, вам не нужно каждый раз взаимодействовать с игровым магазином, но обычно вы делаете это:)
Я думаю, вам нужно понять, как работает React Native, чтобы понять.
Что на самом деле делает RN, так это выставляет нативный API для вашей базы кода Javascript. В основном приложение RN состоит из 2 вещей:
Как вы можете себе представить, Native - это все, что написано в Swift/ Objective-C/ Java
и это та часть, которую вы не можете обновить, не пройдя через магазины приложений.
Теперь интересная вещь - часть JS, помните, мы говорили, что в основном вы используете нативный API с JS. Если вы заметили, когда вы бежите react-native run-ios
или же react-native run-android
создается экземпляр сервера, который обслуживает ваш эмулятор / физическое устройство.
Теперь, если вы думаете об этом в основном, когда вы открываете приложение, пакет загружается и запускается. Когда вы обновляете свою кодовую базу во время работы приложения на эмуляторе, серверы отправляют через сокет сигнал, чтобы уведомить клиента о наличии обновления. В этот момент клиент загружает пакет и приложение перезагружается.
Теперь, чтобы ответить на ваш вопрос, да, вы можете обслуживать JS Bundle на своем сервере и проверять приложение, когда загружается или возобновляется, если доступна новая версия JS Bundle, если это так, для ее загрузки (обновление OTA). Как вы понимаете, таким образом можно обновлять только часть Javascript, а не нативную часть.
Опять же, есть несколько сервисов, которые уже делают это, как codepush от MS.
Вы можете использовать код-push cli или appcenter cli для публикации своего кода Javascript на облачных серверах (размещенных в Microsoft), а также использовать response-native-code-push для получения обновлений в вашем приложении RN.
Кроме того, вы можете использовать Expo, которая поставляется с собственными беспроводными (OTA) функциями обновления.
Обе вышеперечисленные службы сами управляют своими серверами и не позволяют вам размещать JS-пакет на вашем собственном сервере (хотя для этого есть запрос на добавление функций).
Обратите внимание, что только изменения в кодовой базе Javascript могут быть доставлены OTA. Любые обновления нативного кода (например, Swift/Java) по-прежнему должны доставляться через App Store/Google Play.