Как добавить кнопки в виджет iOS 14

Я пытаюсь добавить кнопки к виджету, имеющему семейный тип .systemLarge. Я хочу выполнить код, не открывая приложение.

Кто-нибудь знает, как это сделать?

Например, виджет приложения «Ярлыки» включает кнопки, которые можно нажать, чтобы выполнить ярлык, не открывая приложение.


person Spriter    schedule 30.06.2020    source источник


Ответы (2)


Виджеты доступны только для чтения. Приложение «Ярлыки» - исключение.

https://developer.apple.com/documentation/widgetkit/creating-a-widget-extension

Виджеты представляют информацию только для чтения и не поддерживают интерактивные элементы, такие как элементы прокрутки или переключатели. WidgetKit пропускает интерактивные элементы при рендеринге содержимого виджета.

person DPMitu    schedule 30.06.2020
comment
хорошо, я не был уверен, потому что они явно не упоминают кнопки в этой подсказке. И да, конечно, из-за виджета приложения «Ярлыки». Но это не первый случай, когда их собственные приложения не соответствуют Рекомендациям. - person Spriter; 01.07.2020
comment
Я добавил кнопки в виджет iOS 13, и с этим не было никаких ограничений или проблем! - person Ahmadreza; 13.07.2020
comment
Ага. Виджеты старого стиля могли поддерживать кнопки. Новые виджеты iOS 14 не могут. - person DPMitu; 14.07.2020
comment
Приложение «Карты» использует кнопки внутри виджета. Так что в каком-то смысле это возможно. - person Evgen Bodunov; 25.09.2020
comment
Да, в Картах есть 2 кнопки, но они открывают приложение. Затем действие выполняется благодаря установке widgetUrl для каждой кнопки. Когда приложение открывается, onOpenUrl () выполняет необходимую проверку, чтобы выполнить соответствующее действие. Потраченный день на размышления обо всем этом ... Мне нужна кнопка, чтобы просто цифры на виджете переходили с удобного отображения (k, M, B) на полные числа. - person iOS Flow; 17.02.2021

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

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

См. Главу Ответ на взаимодействие с пользователем здесь: https://developer.apple.com/documentation/widgetkit/creating-a-widget-extension.

person Thyraz    schedule 29.09.2020