2015-08-09 3 views
0

Моя идея: заставить обновить собственное приложение для родных, его js-файлы образуют веб-интерфейс. при каждой загрузке (только при наличии обновления). Для этого есть два вопроса.React Native, Auto update .js files

Первый должен сделать это внутри v8. Используйте diffrenet требуют функции,

myRequire(jsUrl, './offlineLocalJs.js'); 

myRequire имплантации на основе этого answer.

Есть две проблемы с этим ПОДХОД

  • если myRequire является асинхронной, так что каждый модуль будет написано обещаний/обратных вызовов
  • myRequrie является синхронизация. поэтому время приложения нагрузки замедлится

Второго подход

Используйте собственный модуль IOS, который делает запросы HTTP для извлечения файлов, а также обновляет файлы расслоение, и JavaScript остается прежним,.

Некоторые из них в пользу второго подхода. но я не очень разбираюсь в ios devlopment.

Я рад услышать мысли, об этой идее, и предложения Спасибо

+0

Написать родные модули для iOS и Android. Хорошее место для начала будет смотреть на то, что в настоящее время происходит. Начните с AppDelegate.m. Беспокоитесь о оффлайне. – jamesh

ответ

2

Im отвечая на мой собственный вопрос, я, вероятно, следует спросить это на среагировать родной странице Github.

Я решил эту проблему, изменив jsCodeLocation в AppDelegate.m

//AppDelegate.m 

//original line (development mode) 
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"]; change it to 

точка реагировать произрастающих в скомпилированный файл WebPack, и загрузить на сервер и вставить URL в jsCodeLocation переменной.

index.ios.bundle содержание на самом деле содержание http://localhost:8081/index.ios.bundle?dev=false&minify=trueDev сервера компилируются версии

//Point RN to my complied js file 
jsCodeLocation = [NSURL URLWithString:@"http://s3-bucket.com/index.ios.bundle.js"]; 

Одно Im отсутствующего в этом растворе, является проверка сети. В случае отсутствия интернета я должен вернуться к статической/стандартной версии.

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

Я могу даже добавить больше модулей npm, если они чистые js (нет двоичных файлов).

Смежные вопросы