iOS WebView
Это руководство показывает, как встроить компонент WebView с поддержкой Cordova в более крупное приложение iOS. Для получения подробностей о том, как эти компоненты могут взаимодействовать друг с другом, см. Плагины приложений.
Поддержка WebView для 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 добавьте (замените <versionилиtag> на соответствующую версию):
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/7.x/guide/platforms/ios/webview.html