#uwp #visual-studio-2017 #microsoft-edge #appx #microsoft-edge-extension
#uwp #visual-studio-2017 #microsoft-edge #appx #microsoft-edge-extension
Вопрос:
Я реализовал пример из Создания и использования службы приложений и расширил его с помощью WebExtension (он использует AppServiceProvider для встроенного обмена сообщениями), который находится в папке Extension
в проекте AppServiceProvider. Но созданный .appx
файл не устанавливает WebExtension в Edge. Другие компоненты установлены и работают. Я настроил свойство Copy to Output Directory
на Copy always
для всех файлов внутри Extension
папки. Во время установки не появляется никакого сообщения об ошибке.
Почему WebExtension не установлен .appx
?
Существуют ли какие-либо значения, которые должны существовать в Package.appxmanifest
или manifest.json
?
Любая помощь будет оценена, спасибо!
Комментарии:
1. Возможно, вы не раскрыли семейное имя пакета вызывающего абонента в файле AppxManifest, подобном этому. ‘AppService. CallerPackageFamilyName == EdgePFN ‘ Вы можете проверить и попытаться выполнить шаги, упомянутые в ссылке ниже, которые могут помочь установить надстройку в Edge. Ссылка: learn.microsoft.com/en-us/microsoft-edge/extensions/guides/… Если ваша проблема сохраняется, пожалуйста, попробуйте предоставить пример файла проекта. Мы попытаемся проверить, не отсутствует ли в нем чего-либо.
2. @Deepak-MSFT Действительно, строка
appService.CallerPackageFamilyName == EdgePFN
отсутствует. Но ни один пример из MicrosoftEdge-Extensions-Demos не содержит такой строки. Например, в SecureInput/ NativeMessagingHostOutOfProcessAppService/Task.cs строка 46 Edge предполагается вызывающим при вводе ветви else, но семейное имя пакета Edge никогда явно не проверяется. Разве это не позволило бы подключаться каждому приложению? Кроме того, как можно определить значение, которым должен быть заменен заполнительEdgePFN
?3. Да, я вижу это, согласно документации по встроенному обмену сообщениями. Вам также необходимо указать, какие расширения разрешены для подключения к сервису. Поскольку Microsoft Edge не имеет эквивалентного свойства манифеста «allowed_origins» в своем AppxManifest, это должно быть определено и применено во время выполнения вашим приложением UWP. Поскольку Microsoft Edge будет устанавливать соединение от имени расширения, приложение может просмотреть семейство пакетов вызывающего абонента, чтобы определить, подключается ли к ним Microsoft Edge для управления или аутентификации вызывающего абонента. Так что вы можете протестировать его.
4. Я добавил проверку
if ( appService.CallerPackageFamilyName == "Microsoft.MicrosoftEdge_8wekyb3d8bbwe" )
, но расширение все еще не установлено.5. Если это возможно для вас, не могли бы вы, пожалуйста, поделиться примером вашего проекта? Мы можем попытаться проверить это и провести тест с нашей стороны, чтобы найти причину проблемы. Спасибо за ваше понимание.