Вы можете использовать функцию «merges» в CLI Cordova для этого. Представьте себе, у меня есть проект, который выглядит следующим образом:
-rw-r--r-- 1 simon staff 1115 Mar 22 19:57 config.xml drwxr-xr-x 3 simon staff 102 Mar 17 21:47 hooks/ drwxr-xr-x 7 simon staff 238 Mar 22 19:57 platforms/ drwxr-xr-x 7 simon staff 238 Mar 22 19:57 plugins/ drwxr-xr-x 7 simon staff 238 Mar 21 13:11 www/
С моим кодом приложения все в WWW, который был организован так:
drwxr-xr-x 4 simon staff 136 Mar 24 12:42 css/ drwxr-xr-x 4 simon staff 136 Mar 21 13:11 img/ -rw-r--r-- 1 simon staff 1338 Mar 21 15:16 index.html drwxr-xr-x 4 simon staff 136 Mar 22 18:29 js/
Imagine У меня есть обе платформы Android и IOS установлены , и хотят делать что-то по-разному на каждом, без ввода лотов:
if (device.platform === 'Android') { // Android specific code } else { // iOS specific, assuming we are only supporting iOS }
вид кода в моей заявке. Это также не масштабируется для многих платформ (например, добавьте Windows и BB там, а затем вы имеете больше if/else или оператор switch каждый раз).
Чтобы помочь с этим, CLI Cordova может объединить код и будет искать папку верхнего уровня, называемую merges. Так что один из них в той же папке, ваш config.xml находится, поэтому проект теперь выглядит следующим образом:
-rw-r--r-- 1 simon staff 1115 Mar 22 19:57 config.xml drwxr-xr-x 3 simon staff 102 Mar 17 21:47 hooks/ drwxr-xr-x 4 simon staff 136 Mar 22 17:47 merges/ drwxr-xr-x 7 simon staff 238 Mar 22 19:57 platforms/ drwxr-xr-x 7 simon staff 238 Mar 22 19:57 plugins/ drwxr-xr-x 7 simon staff 238 Mar 21 13:11 www/
Затем создайте:
merges/android merges/ios
Все, что вы положили туда получите копируется в специальную папку www и переопределяет материал по тому же пути из вашей основной папки www или добавляется, если в WWW нет ни одного имени/пути.
Пример:
ls -lF merges/android/img total 16 [email protected] 1 simon staff 7626 Mar 21 13:23 logo.png
Это изображение logo.png заменит WWW/IMG/logo.png только для Android. Я могу либо сделать то же самое для iOS (add merges/ios/img/logo.png), либо использовать изображение по умолчанию (www/img/logo.png).
Это может быть сделано для любого типа файла (JS/CSS/img/JSON/безотносительно), который вам нужен на основе конкретной платформы.
Нет необходимости писать сценарий крюка, чтобы сделать эту работу, CLI делает это автоматически, когда вы запускаете кордовую сборку для каждой платформы.
Документация по этой концепции находится в Cordova CLI docs.
Нет, вы не можете сделать это, чтобы работать независимо с каждой платформой. То, что вы сейчас делаете, - это только путь. –
благодарит @jaydroider за ваши отзывы, но я могу дождаться и некоторых других предложений. – Naitik