Я предварительно скомпилировал свой пакет для реагирования и загрузил его на свой сервер (поддельный URL-адрес):
Для iOS я могу просто создать представление, используя это место, и оно отлично работает:
jsCodeLocation = "http://my-bundle-server.com/index.android.bundle.js";
RCTRootView *rootView = [[RCTRootView alloc]
initWithBundleURL:jsCodeLocation
moduleName:@"MyCoolComponent"
initialProperties:nil
launchOptions:launchOptions];
С Android это другая история, я не мог найти способ определить этот путь для удаленного пакета. Я нашел документацию для ReactNativeHost и попытался установить getJSBundleFile, но это дает мне сообщение «Не удалось загрузить файл http: //....js»:
Returns a custom path of the bundle file. This is used in cases the bundle should be loaded from a custom path. By default, it is loaded from Android assets, from a path specified by {@link getBundleAssetName}. e.g. "file://sdcard/myapp_cache/index.android.bundle"
Похоже, что с удаленными местами работать не будет. Стоит упомянуть, что я создаю свой хост в приложении, чтобы я мог повторно использовать его в разных фрагментах моего приложения.
Как я могу определить местоположение предварительно скомпилированного пакета для загрузки для приложения Android?
Реализация по умолчанию, похоже, использует реализацию файловой системы:
Но, похоже, есть возможность выставить сборщик, который может загружать здесь удаленный URL-адрес (в противном случае, как бы dev server url загружал пакет из localhost-rite?):
вместе с внешним интерфейсом api, чтобы установить здесь пользовательский загрузчик пакетов:
P.S. Я не пробовал ничего из вышеперечисленного, но это работает.
В продолжение ответа Джея: вот рабочая реализация удаленного пакета
ReactInstanceManager.builder()
.setApplication(getApplication())
.setCurrentActivity(this).setJSBundleLoader(
JSBundleLoader.createCachedBundleFromNetworkLoader(
"index.android.bundle",
"http://localhost:8081/index.bundle?platform=android&dev=false&hot=false&minify=false"
)
)
Однако я получаю эту ошибку: / TypeError: React.useEffect не является функцией, но сборщик работает и запускается
Что такое sourceUrl и т. д.? Как мне это использовать? Я здесь java noob. Пытаюсь использовать это как обходной путь для запуска моего сервера разработки. Кажется, не подключается, но отлично работает на localhost: 8081 /…