2016-09-06 3 views
3

В iOS 10 новые Today Widgets также появляются, когда пользователь 3D прикосновением к иконке приложения. Я хотел бы добавить туда кнопки, которые заходят в приложение и открывают конкретный документ (похожий на виджет Apple Music). Что я должен использовать для достижения этого?iOS 10 Today Widget Buttons

Спасибо

ответ

4

Сегодня Расширения имеют NSExtensionContext, разоблачен как собственность extensionContext. ExtensionContext имеет метод openURL, который вы можете передать частному URL для запуска вашего приложения.

Это довольно широкий вопрос, поэтому мы предлагаем широкий обзор техники.

(1) зарегистрируйте пользовательскую схему URL в своем основном приложении, например. MyApp:

Добавить ключи в файл Plist приложения, например .:

<key>CFBundleURLTypes</key> 
<array> 
<dict> 
    <key>CFBundleURLName</key> 
    <string>com.mycompany.myapp</string> 
    <key>CFBundleURLScheme</key> 
    <array> 
    <string>myapp</string> 
    </array> 
</dict> 
</array> 

это регистрирует с прошивкой, что ваше приложение обрабатывает "MYAPP" схему. Используйте свое имя здесь и выберите тот, который, скорее всего, будет уникальным!

(2) называют openURL на вашем extensionContext вашего сегодняшнего обзора расширение контроллера

[self extensionContext] openURL:[NSURL URLWithString:@"myapp://someurl"] completionHandler:nil]; 

(3) обработки вызова в Application делегатом вашего приложения, и это метод handleOpenURL

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{ 
    // do something here 
} 

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

Вы отметили вопрос с помощью Swift, но эти образцы фрагментов находятся в Obj-C, извините за это.

+0

Это замечательно. Я рассмотрю это. Большое спасибо. –

Смежные вопросы