machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Создание расширения общего доступа в NativeScript

Дата публикации Oct 3, 2019

фотоГенри Марш

Расширения общего доступа - это тип расширения приложения в iOS, расширяющий функциональность вашего приложения. Пользователи смогут делиться другими формами контента с вашим приложением. Подумайте о том, чтобы поделиться статьей, которая вам нравится в Safari, через WhatsApp, ваши фотографии через Instagram. Nativescript, начиная с версии 5.3, также представил бета-поддержку расширений для общего ресурса. Я работал с NativeScript, чтобы запустить в производство приложение с поддержкой расширений для общего ресурса, и мне понравился общий процесс.

Учебник для обмена расширениями

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

Создание расширения общего ресурса в NativeScript

Создание расширения общего ресурса в NativeScript в значительной степени похоже на то, как вы делали бы это изначально через Xcode. Если у вас уже есть опыт работы с ним, не стесняйтесь переходить непосредственно к части, относящейся к NativeScript. В противном случае процесс выглядит так:

  • Использование Xcode для создания расширения общего ресурса
  • Интеграция в процесс сборки NativeScript
  • Кодирование вашего общего ресурса
  • Обмен данными с вашим хост-приложением

Леса расширения расширения с Xcode

Во-первых, мы захотим использовать Xcode для генерации основы нашего расширения общего ресурса. Это даст нам базовое расширение рабочей доли. Откройте проект iOS Xcode вашего приложения NativeScript, расположенный вplatforms/ios, NativeScript использует CocoaPods, поэтому обязательно откройте.xcworkspaceфайл вместо вашего.xcodeprojфайл.

В дикой форме уже есть бесчисленные руководства, документирующие, как это сделать в XCode, поэтому я свяжу вас софициальный Apple, одинвместо того, чтобы повторять это здесь. Не стесняйтесь использовать Swift или Objective-C, так как оба будут работать с NativeScript.

После этого вам нужно настроить группу приложений для обмена данными между вашим расширением и хост-приложением. В Xcode перейдите на вкладку возможностей вашего проекта, чтобы создать новую группу приложений. В списке целей проекта перейдите к основному приложению хоста и включите для него также группу приложений.

Интеграция вашего общего ресурса в ваше приложение NativeScript

У вас уже есть рабочее расширение общего доступа в вашем проекте XCode, но оно еще не интегрировано в NativeScript. Однако, поскольку это создано в XCode, NativeScript переопределит их при следующем запускеtns prepare,

В Xcode вы увидите недавно созданную папку для вашего расширения общего ресурса. Копировать содержимое внутриapp/App_Resources/iOS/extensions/your_share_extension_folder, Теперь, когда вы бежитеtns prepareэто скопировано в ваш проект Xcode.

Когда вы создаете и запускаете свое приложение в Simulator сейчас, вы должны увидеть новое расширение общего доступа для своего приложения при открытии общего листа в Safari. Поздравляем!

Получение данных расширения общего доступа в вашем приложении NativeScript

В этом руководстве также не рассматриваются особенности кодирования расширения общего ресурса. Вместо этого давайте рассмотрим, как мы можем получить данные, которыми вы поделились с вашего внутреннего номера. Чтобы напомнить, что мы сделали ранее, мы создали группу приложений, которая позволит нам обмениваться данными между расширением и хост-приложением.

В вашем расширении вы, вероятно, будете сохранять данные в группу приложений через UserDefaults:

self.userDefaults = [[NSUserDefaults alloc] initWithSuiteName:GROUP_IDENTIFIER];
[self.userDefaults setObject:shareJsonString forKey:@"share"];

В NativeScript модуль Application Settings используется для взаимодействия с iOS NSUserDefaults. Однако настройки приложения ограничены только взаимодействием с пользовательскими настройками приложения. Для этого с нашей группой приложений мы должны будем использовать нативные API.

import { isIOS } from 'tns-core-modules/platform';

const userDefaults = isIOS ? NSUserDefaults.alloc().initWithSuiteName('group.com.yourapp.shareext') : undefined;

# Retrieving the value from a key
userDefaults.valueForKey(key)

Отладка вашего общего ресурса

При использовании Nativescript CLI для сборки и запуска вашего приложения вы увидите, что консоль выводит журналы только из вашего хост-приложения. Если вам нужно более глубокое ведение журнала или использовать другие стратегии отладки, такие как точки останова, вам нужно настроить расширение общего ресурса в XCode и запустить его. Журналы, связанные с расширением общего доступа, будут выводиться в консоли Xcode.

В целом процесс разработки расширения для общего ресурса в NativeScript прошел для меня довольно гладко. Хотя поддержка NativeScript только в бета-версии, она достаточно хороша для развертывания в качестве рабочего приложения. Создание общего ресурса - сложная тема, и тем более это делается в NativeScript. Я уверен, что пропустил некоторые детали при написании этого руководства. Пожалуйста, не стесняйтесь обращаться, если есть что-то еще, что я могу уточнить больше или если у вас есть какие-либо вопросы / отзывы.

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

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map