В 2021 году не будет никого, кто не сможет юниап [собачья голова]

uni-app

Быстрое обучение UniAPP

1. Введение в UniAPP

(1) Что такое UniAPP?

uni-app — это фреймворк для разработки всех фронтенд-приложений с использованием Vue.js Разработчики пишут набор кодов, которые можно публиковать в iOS, Android, H5 и различных небольших программах (WeChat/Alipay/Baidu/Toutiao/QQ/ DingTalk ) и другие платформы, что удобно для разработчиков, чтобы быстро доставлять их, не меняя мышления или привычек разработчиков.

(2) Почему стоит выбрать UniAPP?

  1. Больше разработчиков/кейсов

Сотни тысяч приложений, 1,2 миллиарда активных пользователей в месяц по статистике uni, 70+ групп WeChat/QQ

  1. Неограниченные возможности платформы

В то же время кросс-энд, с помощью условной компиляции + вызов API для конкретной платформы, вы можете элегантно писать персонализированный код для платформы и вызывать проприетарные возможности, не затрагивая другие платформы.

  1. Отличный опыт работы

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

  1. Окружающая экология богата

Рынок плагиновТысячи подключаемых модулей, поддержка NPM, поддержка компонентов апплета и SDK, различные SDK экосистемы WeChat могут быть напрямую использованы для кросс-платформенного приложения.

  1. низкая стоимость обучения

На основе общего стека передовых технологий, с использованием синтаксиса vue + API апплета WeChat, без дополнительных затрат на обучение.

(3) Функциональная структура UniAPP

1.png

(4) Создание среды разработки UniAPP

  1. Скачать инструменты разработкиHBuilderX

HBuilderX — это инструмент для разработки интерфейсов общего назначения, но дляuni-appСпециально усиленный.

Загрузите разрабатываемую версию приложения, которую можно использовать «из коробки»; если вы скачаете стандартную версию, ее можно запустить или выпуститьuni-app, вам будет предложено установитьuni-appПлагин, плагин можно использовать после завершения загрузки

  1. Создать проект уни-приложения

выберитеuni-appВведите имя проекта, выберите шаблон и нажмите «Создать», чтобы успешно его создать.

Шаблон Hello uni-app, который поставляется с uni-app, является официальным компонентом и примером API.

Еще одним важным шаблоном является шаблон проекта uni ui, который рекомендуется для ежедневной разработки и имеет встроенное большое количество общих компонентов.

  1. Запустить уни-приложение

В основном включают в себя: работу в браузере, работу на реальном компьютере, работу с небольшой программой и т. д.

  1. Опубликовать универсальное приложение

В основном включают в себя: собственное облачное приложение, автономное собственное приложение, H5, различные небольшие программы.

2. Конфигурация, связанная с инициализацией UniAPP

(1) Структура каталогов проекта

┌─components            uni-app组件目录
│  └─comp-a.vue        可复用的a组件
├─hybrid                存放本地网页的目录(自建)
├─platforms             存放各平台专用页面的目录(自建)
├─pages                 业务页面文件存放的目录
│  ├─index
│  │  └─index.vue      index页面
│  └─list
│     └─list.vue        list页面
├─static                存放应用引用静态资源(如图片、视频等)的目录,注意:静态资源只能存放于此
├─wxcomponents          存放小程序组件的目录(自建)
├─common                公共资源(自建)
├─api                   请求封装(自建)
├─store                 状态管理(自建)
├─main.js               Vue初始化入口文件
├─App.vue               应用配置,用来配置App全局样式以及监听 应用生命周期
├─manifest.json         配置应用名称、appid、logo、版本等打包信息
└─pages.json            配置页面路由、导航条、选项卡等页面类信息

намекать

  • staticФайл JS в каталоге не будет скомпилирован WebPack, если есть код ES6, без преобразования напрямую, он сообщит об ошибке на мобильном устройстве.
  • такless、scssНе размещайте другие ресурсыstatic каталог, рекомендуется, чтобы эти общедоступные ресурсы были помещены в commonПод содержанием

(2) Конфигурация приложения manifest.json

manifest.jsonФайл представляет собой файл конфигурации приложения, который используется для указания имени, значка, разрешений и т. д. Здесь мы также можем установить процессор междоменного перехвата для Vue и H5.

(3) Скомпилируйте и настройте vue.config.js

vue.config.jsЭто необязательный файл конфигурации. Если этот файл существует в корневом каталоге проекта, он будет загружен автоматически. Обычно он используется для настройки параметров компиляции, таких как веб-пакет.официальная документация

(4) Глобальная конфигурация page.json

pages.jsonФайл используется для глобальной настройки универсального приложения, определения пути к файлу подкачки, стиля окна, собственной панели навигации, встроенной панели вкладок внизу и т. д. Это похоже на апплет WeChatapp.jsonизУправление страницейчасть.

официальная документация

Атрибуты Типы Необходимый описывать
globalStyle Object нет Установить поведение окна страницы по умолчанию
pages Object Array да Установить путь к странице и поведение окна
easycom Object нет Правила автоматического введения компонентов
tabBar Object нет Установить поведение нижней вкладки
condition Object нет Конфигурация режима загрузки
subPackages Object Array нет Конфигурация загрузки подпакета
preloadRule Object нет Правила предварительной загрузки подпакета

(5) Глобальный стиль uni.scss

uni.scssЦель файла — облегчить общий контроль над стилем приложения. Например, цвет кнопки, стиль границы,uni.scssПакет пресетов переменных scss предустановлен в файле.официальная документация

uni-appОфициальные расширения (uni ui) иРынок плагиновМногие сторонние плагины используют эти переменные стиля.Если вы являетесь разработчиком плагинов, рекомендуется использовать предварительную обработку scss и использовать эти переменные непосредственно в коде плагина (не нужно импортировать этот файл), что пользователям удобно разрабатывать всю систему из строительных блоков.Приложение с единым стилем.

uni.scss— это специальный файл, вы можете использовать здесь переменные стиля в коде scss, не импортируя этот файл в код. Компилятор uni-app специально обрабатывает этот uni.scss в конфигурации веб-пакета, так что каждый файл scss внедряется в этот uni.scss для достижения глобально доступного эффекта. Если разработчики хотят использовать меньше и стилус глобально, им необходимо настроить собственную стратегию веб-пакетов в vue.config.js.

(6) Основной компонент App.vue

App.vueявляется основным компонентом уни-приложения, все страницы находятся вApp.vueСледующим переключателем является файл ввода страницы. ноApp.vueЭто не страница, и здесь нельзя писать элементы представления.

Функции этого файла включают в себя: вызов функций жизненного цикла приложения, настройку глобальных стилей и настройку глобального хранилища globalData.

Жизненный цикл приложения доступен только вApp.vueВ мониторинге мониторинг на странице недействителен.

(7) Входной файл main.js

main.jsЭто входной файл uni-приложения, основная функция которого заключается в инициализацииvueНапример, определите глобальные компоненты, используйте необходимые плагины, такие как vuex.

официальная документация

(8) Спецификация разработки UniAPP и путь к ресурсам

  1. Соглашения о спецификации разработки
  • мастер файлов подкачкиСпецификация однофайлового компонента Vue (SFC)
  • Метка компонента близка к спецификации апплета, подробности см. в спецификации компонента универсального приложения.
  • Возможность межсоединения (JS API) близка к спецификации апплета WeChat, но вам нужно заменить wx на uni , подробности см. в спецификации интерфейса uni-app.
  • Привязка данных и обработка событий аналогичны спецификации Vue.js, но дополняют жизненный цикл приложения и страницы.
  • Для совместимости с многотерминальной операцией рекомендуется использовать гибкий макет для разработки.
  1. Описание пути к ресурсу

При назначении статических ресурсов, таких как атрибут src изображения, видео и других тегов в шаблоне, вы можете использовать относительный или абсолютный путь в следующей форме:

<!-- 绝对路径,/static指根目录下的static目录,在cli项目中/static指src目录下的static目录 -->
<image class="logo" src="/static/logo.png"></image>
<image class="logo" src="@/static/logo.png"></image>
<!-- 相对路径 -->
<image class="logo" src="../../static/logo.png"></image>

Уведомление

  • @ Исходный абсолютный и относительный пути будут проверяться правилами преобразования base64.
  • Статические ресурсы знакомств не конвертируются в base64 на платформах, отличных от h5.
  • На платформе H5 ресурсы менее 4кб будут конвертированы в base64, а остальные не будут перенесены

js или теги сценария, вы можете использовать относительные пути и абсолютные пути в следующих формах:

// 绝对路径,@指向项目根目录,在cli项目中@指向src目录
import add from '@/common/add.js'
// 相对路径
import add from '../../common/add.js'

В файлах css или тегах стилей вы можете использовать относительные и абсолютные пути в следующих формах:

/* 绝对路径 */
@import url('/common/uni.css');
@import url('@/common/uni.css');
/* 相对路径 */
@import url('../../common/uni.css');

Путь к изображению, указанный в файле css или теге стиля, может использовать относительный или абсолютный путь в следующей форме:

/* 绝对路径 */
background-image: url(/static/logo.png);
background-image: url(@/static/logo.png);
/* 相对路径 */
background-image: url(../../static/logo.png);

3. Жизненный цикл UniAPP

Какова основная цель изучения инструмента? Это необходимо для решения основной проблемы бизнес-логики.Бизнес-логика часто просто объясняет предложение: «Делайте правильные вещи в нужное время», хорошо! Какое подходящее время? Проще говоря, во время работы страницы функция обратного вызова каждого этапа — это время на странице. Мы также называем это «функцией жизненного цикла». Конечно, мы также напишем много «обратных вызовов». логика в бизнесе Эти обратные вызовы На самом деле, это также и наше время Каковы функции обратного вызова функции ловушки жизненного цикла UniAPP? Давайте разбираться!

uni-appполная поддержкаVueЖизненный цикл экземпляра, а также добавлениежизненный цикл приложенияа такжежизненный цикл страницы.

(1) Жизненный цикл приложения

Имя функции иллюстрировать
onLaunch когдаuni-appЗапускается после завершения инициализации (запускается только один раз глобально)
onShow когдаuni-appЗапустите или войдите в режим отображения переднего плана из фона
onHide когдаuni-appОт переднего плана к заднему
onError когдаuni-appЗапускается, когда сообщается об ошибке
onUniNViewMessage правильноnvueОтслеживайте данные, отправляемые страницей, см.nvue для связи
onUnhandledRejection Прослушиватель событий для необработанного отклонения обещания (2.8.1+)
onPageNotFound На странице нет функции прослушивания
onThemeChange Следите за изменениями системной темы

(2) Жизненный цикл страницы

Имя функции иллюстрировать
onLoad Отслеживание загрузки страницы, его параметром являются данные, переданные предыдущей страницей, а тип параметра — Объект (для передачи параметров страницы), см.Пример
onShow Отображение страницы монитора. Запускается каждый раз, когда страница появляется на экране, включая возврат из подчиненной точки страницы для отображения текущей страницы.
onReady Прослушайте завершение первоначального рендеринга страницы. Обратите внимание, что если скорость рендеринга высокая, она будет запущена до того, как страница войдет в анимацию.
onHide Скрытие страницы монитора
onUnload Отслеживание выгрузки страницы
onResize Отслеживание изменений размера окна
onPullDownRefresh Отслеживайте действия пользователя по раскрывающемуся меню, обычно используемые для обновления по раскрывающемуся меню, см.Пример
onReachBottom Событие, когда страница прокручивается вниз (а не прокрутка прокрутки вниз), часто используется для вытягивания следующей страницы данных. Подробнее см. в примечаниях ниже.
onTabItemTap Запускается при нажатии на вкладку, параметр — Object, подробности см. в примечаниях ниже.
onShareAppMessage Пользователь нажимает в правом верхнем углу, чтобы поделиться
onPageScroll Следить за прокруткой страницы, параметр Object
onNavigationBarButtonTap Слушайте событие щелчка кнопки собственной строки заголовка, параметр — Object
onBackPress контролировать возврат страницы
onNavigationBarSearchInputChanged Слушайте событие изменения входного содержимого в собственном поле ввода поиска в строке заголовка.
onNavigationBarSearchInputConfirmed Прослушайте событие поиска в собственном поле ввода поиска в строке заголовка, которое запускается, когда пользователь нажимает кнопку «Поиск» на программной клавиатуре.
onNavigationBarSearchInputClicked Слушайте событие щелчка в поле ввода поиска в строке заголовка
onShareTimeline Слушающие пользователи нажимают в правом верхнем углу, чтобы переслать в круг друзей
onAddToFavorites Слушайте щелчок пользователя в правом верхнем углу избранного

4. Конфигурация маршрутизации UniAPP и переход на страницу

(1) Конфигурация маршрутизации

маршрутизация страниц uni-app полностью переданаРамкаЕдиное управление, разработчикам необходимоpages.jsonНастройте путь и стиль страницы для каждой страницы маршрутизации (аналогично апплету, настраивающему маршрутизацию страницы в app.json).

"pages": [
		{
			"path": "pages/index",
			"style": {
				"navigationBarTitleText": "路由配置",
				"navigationBarBackgroundColor": "#FFFFFF",
				"navigationBarTextStyle": "black",
				"backgroundColor": "#FFFFFF",
				"enablePullDownRefresh": true
			}
		},
		{
			"path": "pages/user",
			"style": {
				"navigationBarTitleText": "路由配置",
				"navigationBarBackgroundColor": "#FFFFFF",
				"navigationBarTextStyle": "black",
				"backgroundColor": "#FFFFFF",
				"enablePullDownRefresh": true
			}
		}
]

(2) Маршрутный прыжок

uni-appСуществует два метода перехода по маршруту страницы: используйтеnavigatorКомпонентный переход (навигация с вкладками), вызовAPIПерейти (программная навигация)

Фреймворк управляет всеми текущими страницами в виде стеков.При переключении маршрута стек страниц ведет себя следующим образом:

маршрутизация производительность стека страниц Время запуска
инициализация новая страница Первая страница, открытая юни-приложением
открыть новую страницу новая страница вызов APIuni.navigateTo,
использовать компоненты<navigator open-type="navigate" />
перенаправление страницы Текущая страница всплывает, и новая страница выдвигается. вызов APIuni.redirectTo,
использовать компоненты
страница назад Страница продолжает выскакивать из стека, пока цель не вернется на страницу вызов APIuni.navigateBack,
использование компонентов,
Пользователь нажимает кнопку «Назад» в верхнем левом углу, а пользователь Android нажимает физическую кнопку «Назад».
Переключение вкладок Все страницы открываются, остается только новая вкладка. вызов APIuni.switchTab,
использование компонентов,
Вкладка «Пользовательские переключатели»
перезагрузить Все страницы выталкиваются, остаются только новые страницы вызов APIuni.reLaunch,
использовать компоненты

(3) Получить текущий стек страниц

Функция getCurrentPages() используется для получения экземпляра текущего стека страниц, который задается в порядке стека в виде массива, первый элемент — домашняя страница, а последний элемент — текущая страница.

注意: getCurrentPages() используется только для отображения стека страниц. Не изменяйте стек страниц, чтобы избежать ошибок статуса страницы.

(4) Передача маршрута участвует в приеме

Описание: onLoad() жизненного цикла страницы отслеживает загрузку страницы, а ее параметром являются данные, переданные предыдущей страницей, например:

//页面跳转并传递参数
uni.navigateTo({
    url: 'page2?name=liy&message=Hello'
});

url — это путь к странице, на которую нужно перейти, и путь может сопровождаться параметрами. Использование между параметрами и путями?Разделение, ключ параметра и значение параметра используются=подключены, используются разные параметры&разделены. Например, «путь?ключ1=значение2&ключ2=значение2», путь — это путь к следующей странице, и функция onLoad следующей страницы может получить переданные параметры.

// 页面 2 接收参数
onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
	console.log(option.name); //打印出上个页面传递的参数。
	console.log(option.message); //打印出上个页面传递的参数。
}

注意: URL-адрес имеет ограничение по длине, слишком длинные строки не будут доставлены, а нестандартные форматы символов также могут привести к сбою доставки, поэтому рекомендуется использовать encodeURI и decodeURI для обработки и доставки сложных параметров.

(5) Конфигурация мини-программы маршрутизации субподряда

Из-за ограничений размера и загрузки ресурсов мини-программ различные платформы мини-программ предоставляют методы субподряда для оптимизации скорости загрузки и запуска мини-программ.

Так называемый основной пакет предназначен для размещения стартовой страницы по умолчанию и страницы TabBar, в то время как подпакет разделен в соответствии с конфигурацией pages.json.

При запуске апплета по умолчанию будет загружен основной пакет и будет запущена страница в основном пакете.Когда пользователь вводит страницу в подпакете, соответствующий подпакет будет автоматически загружен, а затем отображен после загрузки завершено.В это время будет отображаться интерфейс терминала.Есть ожидающие подсказки.

"subPackages": [
  	{
			"root": "news",
			"pages": [{
					"path": "index",
					"style": {
						"navigationBarTitleText": "新闻中心",
						"navigationBarBackgroundColor": "#FFFFFF",
						"navigationBarTextStyle": "black",
						"backgroundColor": "#FFFFFF"
					}
				}
			]
		}
  	...
],
// 预下载分包设置
"preloadRule": {
		"pages/index": {
			"network": "all",
			"packages": ["activities"]
		}
}

5. Знакомство с общими компонентами UniAPP

uni-app предоставляет разработчикам ряд основных компонентов, аналогичных основным элементам тегов в HTML, но компоненты uni-app отличаются от HTML, но такие же, как небольшие программы, которые больше подходят для использования на мобильных телефонах.

Хотя теги HTML устарели, на практике, если разработчик пишетdivи другие теги, также будут преобразованы компилятором для платформы, отличной от H5.viewтеги и тому подобноеspanПеременаtext,aПеременаnavigatorИ т.д., в том числе селекторы элементов в css тоже будут перенесены, но для удобства управления и единой стратегии по-прежнему рекомендуется использовать такие компоненты, как view при написании нового кода.

Разработчики могут быстро развиваться, комбинируя эти базовые компоненты.На основе встроенных базовых компонентов можно разрабатывать различные компоненты-расширения.Спецификация компонента такая же, как и у компонента vue.

案例: Реализация макета доверенной сестры

6. Знакомство с общими API UniAPP

uni-appjs, сторона h5 работает в браузере, платформа Android, отличная от h5, работает на движке v8, а платформа iOS работает на движке jscore, который поставляется с iOS. так,uni-appjsAPI состоит из стандартного js API ECMAScript и универсального API расширения.

Ecmascript управляется ECMA International и является базовым синтаксисом JS. Браузер расширяет API js, такие как окно и документ на основе стандартных js; node.js расширяет модули, такие как fs на основе стандартных js; апплет также расширяет различные apis wx.xx, my.xx и swan.xx на основе стандарта js.

Существует множество стандартных API-интерфейсов ecmascript, таких как console, settimeout и т. д.

На стороне, отличной от H5, хотя он и не поддерживает js API браузеров, таких как окно, документ и навигатор, он также поддерживает стандартный ECMAScript.

Разработчики не должны приравнивать js в браузерах к стандартным js.

Поэтому сторона uni-app, отличная от H5, также поддерживает стандартный js, поддерживает такой синтаксис, как if и for, поддерживает строки, массивы, время и другие переменные и различные методы обработки, но не поддерживает объекты, специфичные для браузера.

案例: Функция доверенного чата сестры

7. Пользовательские компоненты и связь UniAPP

(1) Концепция пользовательских компонентов

компонентvueОчень важная часть технологии, компоненты упрощают производство и совместное использование колес, связанных с пользовательским интерфейсом, что, в свою очередь, значительно повышает эффективность разработки пользователей vue.componentКомпоненты хранятся в каталоге,uni-appтолько поддержкаvueОднофайловые компоненты (компоненты .vue)

Компоненты могут использовать «глобальную регистрацию» и двумя способами «введение страницы» для использования, используя трехэтапный процесс:

импортimport xxx from 'xxx'

регистрVue.use('xx',xx) components:{ xxx }

использовать <xx />

(2) Связь компонентов родитель-потомок

  1. Родительские компоненты передают данные дочерним компонентам через настраиваемые свойства.

  2. дочерний компонент черезpropsПолучить данные, переданные родительским компонентом

  1. Родительские компоненты передают события подкомпонентам через настраиваемые теги событий.
  2. Дочерний компонент изменяет данные родительского компонента, вызывая событие, определенное родительским компонентом.

(3) слот распределения данных и слот области видимости

  1. Родительский компонент вкладывает html-контент, вызывая дочерний компонент какslotРаспределить по подкомпонентам
  2. дочерние компоненты черезslotДобавляйте свойства на метки, передавайте данные родительским компонентам, слоты областей

(4) Глобальное определение и связь событий

  1. Доступно в любом месте приложенияuni.$onСоздать глобальное событие
  2. Также доступно в любом месте приложенияuni.$emitДля запуска глобальных событий и реализации обмена данными между несколькими компонентами

Восемь, управление состоянием UniAPP Vuex

  1. концепция

Vuex — это шаблон управления состоянием, разработанный для приложений Vue.js. Он использует централизованное хранилище для управления состоянием всех компонентов приложения и использует соответствующие правила, чтобы гарантировать предсказуемое изменение состояния.

  1. Сценарии применения

Данные или состояние должны быть разделены между несколькими компонентами Vue.

  1. ключевые правила
  • Состояние: хранить данные о состоянии
  • Getter: извлекает данные из данных состояния, что эквивалентно вычисляемому свойству State.
  • Мутация: метод, используемый для хранения данных состояния синхронно изменяется, параметр по умолчанию передается в состоянии
  • Действие: хранение используется для изменения данных состояния асинхронно, но не напрямую, но путем запускания метода мутации. Параметр по умолчанию является контекстом
  • Модуль: модульность Vuex
  1. интерактивные отношения

2.png

  1. Как использовать
import {
		mapState,
		mapActions
} from 'vuex'
export default {
		computed: {
			...mapState(['loginState', 'userInfo'])
		},
		methods: {
			...mapActions(['userLoginAction', 'userLogoutAction']),
		}
}
  1. Практический пример: моделирование реализации логики входа пользователя

Примечание. Используйте с хранилищем для достижения бизнес-требований, чтобы состояние сохранялось после обновления страницы.

Девять, Операционная среда Суждение и скрещенная совместимость

(1) Среда разработки и производственная среда

uni-appдоступныйprocess.env.NODE_ENVЧтобы определить, является ли текущая среда средой разработки или производственной средой, она обычно используется для динамического переключения между тестовым сервером и рабочим сервером.

В HBuilderX код, скомпилированный нажатием кнопки «Выполнить», является средой разработки, а код, скомпилированный нажатием кнопки «Выпуск», — рабочей средой.

if(process.env.NODE_ENV === 'development'){
    console.log('开发环境')
}else{
    console.log('生产环境')
}

(2) Судебная платформа

Существует два сценария оценки платформы: один — оценка во время компиляции, а другой — оценка во время выполнения.

Оценка времени компиляции Оценка времени компиляции, т.е.Условная компиляция, разные платформы имеют разные коды после компиляции пакета,

// #ifdef H5
 alert("只有h5平台才有alert方法")
// #endif
// 如上代码只会编译到H5的发行包里,其他平台的包不会包含如上代码。

Оценка во время выполнения Оценка во время выполнения означает, что код был введен в пакет, и платформа все еще нуждается в оценке во время выполнения.В настоящее время ее можно использовать.uni.getSystemInfoSync().platformОпределите, является ли клиентская среда Android, iOS или небольшим инструментом разработки программ.

switch(uni.getSystemInfoSync().platform){
   case 'android':
      console.log('运行Android上')
      break;
   case 'ios':
      console.log('运行iOS上')
      break;
   default:
      console.log('运行在开发者工具上')
      break;
}

(3) кросс-конечная совместимость

uni-app инкапсулирует часто используемые компоненты и API-интерфейсы JS в структуру. Разработчики могут разрабатывать в соответствии со спецификацией uni-app, чтобы обеспечить совместимость с несколькими платформами. Большинство предприятий могут быть удовлетворены напрямую, но каждая платформа имеет свои особенности, поэтому существует будут некоторые случаи, когда кроссплатформенность невозможна.

  • Большое количество пишет, если в этом больше, он приведет к плохому выполнению кода производительности и плохому управлению.
  • Вторая модификация после компиляции в разные проекты сделает последующие обновления очень проблематичными.

В языке C разные коды компилируются для разных ОС, таких как Windows и Mac, с помощью #ifdef и #ifndef.uni-appСсылаясь на эту идею, дляuni-appПредусмотрены средства условной компиляции, а реализация настройки платформы изящно завершена в одном проекте.

Условная компиляция помечается специальными комментариями, и код в комментариях компилируется для разных платформ в соответствии с этими специальными комментариями во время компиляции.

** Написание: ** Добавить с #ifdef или #ifndef%PLATFORM%начало, окончание с #endif.

  • \#ifdef:если определено, существует только на определенной платформе
  • \#ifndef:если не определено существует, за исключением определенной платформы
  • %PLATFORM%: название платформы

%PLATFORM% Возможные значения следующие:

стоимость Платформа
APP-PLUS App
APP-PLUS-NVUE App nvue
H5 H5
MP-WEIXIN Апплет WeChat
MP-ALIPAY Апплет Alipay
MP-BAIDU Апплет Baidu
MP-TOUTIAO Апплет ByteDance
MP-QQ апплет QQ
MP-360 апплет 360
MP Апплет WeChat/апплет Alipay/апплет Baidu/апплет ByteDance/апплет QQ/апплет 360
QUICKAPP-WEBVIEW Быстрое универсальное приложение (в комплекте Union, Huawei)
QUICKAPP-WEBVIEW-UNION Альянс быстрых приложений
QUICKAPP-WEBVIEW-HUAWEI Быстро применить Huawei

Получите бесплатные программные ресурсы, обменяйтесь интерфейсными технологиями --- WX:NY378599