iOS WebViews
Это руководство показывает, как встроить компонент WebView с поддержкой Cordova в более крупное приложение iOS. Подробную информацию о том, как эти компоненты могут взаимодействовать друг с другом, см. в разделе Плагины приложений.
Поддержка WebViews для iOS началась с версии Cordova 1.4, используя компонент Cleaver, для которого шаблон Xcode служит эталонной реализацией. Cordova 2.0 и более поздние версии поддерживают только реализацию Cleaver на основе подпроектов.
Эти инструкции требуют не менее Cordova 4.x и Xcode 8.0, а также файла config.xml из недавно созданного проекта iOS. Вы можете использовать процедуру в Разделе командной строки для создания нового проекта, а затем получить файл config.xml из подкаталога названного приложения в platforms/ios.
Чтобы следовать этим инструкциям, убедитесь, что у вас есть последняя дистрибуция Cordova. Скачайте её с cordova.apache.org и распакуйте пакет iOS.
У вас есть два способа добавления Cordova в ваш проект. Первый — использование Carthage, а второй — добавление Cordova вручную. Обратите внимание, что поддержка Carthage доступна только в версии cordova-ios 4.4.0 или выше.
После использования любого из этих двух методов, продолжайте с разделом "Использование CDVViewController".
1. Добавление Cordova.framework в проект Xcode с помощью Carthage
Установите Carthage
-
В вашем файле Cartfile добавьте (замените <версияилитег> соответствующей версией):
git "git://git.apache.org/cordova-ios.git" "<version_or_tag>" # Apache
-
Запустите
carthage update
Добавьте
Carthage/Build/iOS/Cordova.frameworkв свой проект Xcode.
2. Добавление Cleaver в проект Xcode (подпроект CordovaLib)
Закройте Xcode, если оно запущено.
Откройте терминал и перейдите в каталог исходных файлов Cordova iOS.
Скопируйте файл
config.xml, описанный выше, в каталог проекта.Откройте Xcode и с помощью Finder скопируйте файл
config.xmlв окно Навигатор проекта.Выберите Создать группы для добавленных папок и нажмите Готово.
С помощью Finder скопируйте файл
CordovaLib/CordovaLib.xcodeprojв Навигатор проекта Xcode.Выберите
CordovaLib.xcodeprojв Навигаторе проекта.Нажмите сочетание клавиш Option-Command-1, чтобы отобразить Инспектор файла.
В Инспекторе файла для раскрывающегося списка Расположение выберите Относительно группы.
Выберите иконку проекта в Навигаторе проекта, выберите Целевой продукт, а затем выберите вкладку Параметры сборки.
Добавьте
-force_loadи-ObjCв значение Другие флаги компоновщика.Щелкните по иконке проекта в Навигаторе проекта, выберите Целевой продукт, а затем выберите вкладку Этапы сборки.
Разверните Связать двоичные библиотеки.
-
Выберите кнопку + и добавьте следующие фреймворки. Дополнительно в Навигаторе проекта переместите их в группу Фреймворки:
AssetsLibrary.framework CoreLocation.framework CoreGraphics.framework MobileCoreServices.framework
Разверните Зависимости целевого продукта, верхнюю строку с этим названием, если есть больше одной строки.
Выберите кнопку + и добавьте продукт сборки
CordovaLib.Разверните Связать двоичные библиотеки, верхнюю строку с этим названием, если есть больше одной строки.
Выберите кнопку + и добавьте
libCordova.a.Установите Настройки Xcode → Местоположения → Данные вывода → Дополнительно... в значение Уникальные.
Выберите иконку проекта в Навигаторе проекта, выберите Целевой продукт, а затем выберите вкладку Параметры сборки.
-
Найдите Пути поиска заголовков. Для этого параметра добавьте следующие три значения, включая кавычки:
"$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
Начиная с Cordova 2.1.0,
CordovaLibбыл обновлен для использования Автоматического управления ссылками (ARC). Вам не нужно обновлять до ARC, чтобы использоватьCordovaLib, но если вы хотите обновить свой проект для использования ARC, используйте мастер миграции Xcode из меню Редактирование → Переработка → Преобразовать в Objective-C ARC..., отключите libCordova.a, а затем завершите мастер.
Использование CDVViewController
-
Добавьте следующий заголовок:
#import <Cordova/CDVViewController.h>
-
Создайте новый экземпляр
CDVViewControllerи сохраните его где-нибудь, например, в свойстве класса:CDVViewController* viewController = [CDVViewController new];
-
Необязательно, задайте свойство
wwwFolderName, которое по умолчанию равноwww:viewController.wwwFolderName = @"myfolder";
-
Необязательно, задайте стартовую страницу в теге
config.xmlфайла<content>, либо локальный файл:<content src="index.html" />
...или удалённый сайт:
<content src="http://apache.org" />
-
Необязательно, задайте свойство
useSplashScreen, которое по умолчанию равноNO:viewController.useSplashScreen = YES;
-
Задайте рамку представления. Всегда задавайте это в качестве последнего свойства:
viewController.view.frame = CGRectMake(0, 0, 320, 480);
-
Добавьте Cleaver в представление:
[myView addSubview:viewController.view];
Добавление HTML, CSS и JavaScript ресурсов
Создайте новую директорию в проекте,
wwwнапример.Разместите HTML, CSS и JavaScript ресурсы в эту директорию.
С помощью Finder скопируйте директорию в окно Навигатор проекта Xcode.
Выберите Создать ссылки на папки для добавленных папок.
-
Установите соответствующие свойства
wwwFolderNameиstartPageдля директории, которую вы изначально создали, или используйте значения по умолчанию (указанные в предыдущем разделе) при создании экземпляраCDVViewController./* if you created a folder called 'myfolder' and you want the file 'mypage.html' in it to be the startPage */ viewController.wwwFolderName = @"myfolder"; viewController.startPage = @"mypage.html"
© 2012, 2013, 2015 The Apache Software Foundation
Licensed under the Apache License 2.0.
https://cordova.apache.org/docs/en/6.x/guide/platforms/ios/webview.html