Как запретить iOS 14 Widget открывать приложение и реагировать на обратный вызов

Итак, я уже прочитал несколько блогов, сообщений и собственные рекомендации Apple по человеческому интерфейсу о том, что виджеты iOS 14 НЕ являются интерактивными, НО: можно передать короткую ссылку на приложение при нажатии на цель. Сама Apple заявляет: маленькие виджеты имеют одну цель касания, средние и большие виджеты - несколько целей касания. OK!

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

НО, теперь мой вопрос, где Google говорит Idk:

Могу ли я программно сказать запретить открытие приложения при нажатии на одну из этих кнопок, которые я создал в своем виджете? Это так же просто, как и в Javascript: preventDefault () (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault).

Это возможно? Я просто хочу предотвратить открытие приложения и получить доступ к этому обратному вызову Tap-Target, который запускается, и обрабатывать мои данные в SwiftUI.

Спасибо большое, ребята :)


person Rebar    schedule 02.12.2020    source источник
comment
К сожалению, ничто от Apple не является хорошим примером, поскольку они могут делать то, чего не могут делать обычные приложения.   -  person Paulw11    schedule 03.12.2020
comment
Да хороший момент ????   -  person Rebar    schedule 03.12.2020


Ответы (1)


Могу ли я программно сказать запретить открытие приложения при нажатии на одну из этих кнопок, которые я создал в своем виджете?

Нет, это просто невозможно (по крайней мере, пока в iOS 14).

По умолчанию, когда вы нажимаете на виджет, приложение открывается. Вы можете указать только глубокие ссылки и т. Д., Но они всегда будут открывать приложение.


Я уже читал [...], что виджеты iOS 14 НЕ интерактивны

В этом контексте интерактивный означает, что вы не можете касаться / перетаскивать / взаимодействовать с представлением виджета, как обычно, с представлением в основном приложении (см. Почему некоторые представления отображаются в виджетах как красный знак запрета входа?).

Кроме того, когда вы нажимаете на виджет, вы не взаимодействуете с его представлением - вы просто открываете приложение. Начиная с iOS 14 вы не можете это изменить.

person pawello2222    schedule 28.12.2020
comment
спасибо за информацию, но в этом случае Widget - это просто пустышка, и мы не можем много с ними поделать, я очень надеялся на них, но это бесполезно, например, пользователь просто хочет воспроизвести / приостановить что-то, поэтому он должен открывать приложение через Widget! Я собираюсь хорошо провести время с Widget и Apple, чтобы сделать их хоть немного более удобными. - person swiftPunk; 03.02.2021
comment
@swiftPunk Именно так Apple разработала виджеты. Они не являются мини-приложениями, а предоставляют только доступную информацию. Предлагаю вам взглянуть на developer.apple.com/documentation/widgetkit. - person pawello2222; 03.02.2021
comment
@ pawello2222, но именно здесь мы, разработчики и UX-дизайнеры, должны дать им обратную связь, что это шаг назад! Мы не можем просто сказать: это так и мы не можем ничего сделать только потому, что это Apple - person Rebar; 29.04.2021