Как открыть окно приложения на панели инструментов, нажмите в расширении приложения Safari? - PullRequest
0 голосов
/ 21 декабря 2018

Я хотел бы открыть окно приложения / расширения, когда пользователь нажимает элемент панели инструментов в Safari.Это не вопрос о расширении Popover.Основная причина заключается в том, чтобы закрыть / скрыть окно при деактивации и действиях пользователя (для работы требуются оба условия).

Расширение приложения Safari (имеется в виду новый предпочтительный / принудительный способ создания расширений для сафари от Apple) можетоткрыть Popover или вызвать команду, когда элемент панели инструментов нажата.Но он не может быть скрыт программно (https://forums.developer.apple.com/thread/105817). В ответе bweinstein он находится в процессе разработки от разработчиков Apple.

Мой пример использования - окно, содержащее WKWebView с загруженной веб-страницей. Когда пользователь нажимает что-либотам я хочу открыть страницу в новой вкладке Safari (эта часть уже работает для меня в режиме Popover) и немедленно закрыть окно (у меня это пока не работает)

Так что мое мышлениездесь нужно было избежать встроенной функции Popover. Я бы хотел показывать Window вместо вызова Command (override func toolbarItemClicked(in window: SFSafariWindow) {}).

Я знаю, что это как-то выполнимо, например, расширение 1Password от agilebits делает именно это: когдаВы щелкаете по элементу панели инструментов, окно отображается без кнопок закрытия / сворачивания, без меню и т. д. Оно работает именно так, как мне нужно, но я не знаю, как этого добиться.

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

Поскольку я новичок в разработке макросов, у меня нет кода, которым можно поделиться.Важная часть из моего POV: - NSExtension->SFSafariToolbarItem->Action в Info.plist установлен на Command

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

Заранее спасибо

1 Ответ

0 голосов
/ 04 марта 2019

Не могли бы вы вызвать SFSafarWindow.openTab ("httxxx: //mysite.com", true, ...) на панели инструментовItemClicked

Вы также можете вызвать SFSafariApplication.openWindow API и закрыть SFSafariWindow (вызываяwindowObject.close ()) -

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...