Cordova Windows 10 / UWP: удаленный режим против отправки по частной сети в магазин

#cordova #uwp

#Кордова #uwp

Вопрос:

Я разработал приложение Cordova, которое развернуто на платформе Windows 10 / UWP. Все работает нормально, если только я не пытался отправить приложение в Windows App Store: в комплекте сертификации приложений Windows указано, что я не могу добавить ApplicationContentUriRule, имеющий WindowsRuntimeAccess для all или allowForWebOnly, указанный в package.windows10.appxmanifest:

 <uap:ApplicationContentUriRules>
   <uap:Rule Match="ms-appx-web:///" Type="include" WindowsRuntimeAccess="all" />
</uap:ApplicationContentUriRules>
  

В какой-то записи в блоге я прочитал, что Cordova и соответствующему содержимому приложения в контексте ms-appx-web требуется доступ к среде выполнения Windows.

Мое приложение развернуто в удаленном режиме, указанном веб-контекстом в этой строке в config.xml:

 <preference name="WindowsDefaultUriPrefix" value="ms-appx-web://" />
  

Как указано в документах Cordova (см. Здесь ), при использовании удаленного режима такие возможности, как проверка подлинности предприятия или privateNetworkClientServer, недоступны. Однако мне нужны эти возможности, поскольку приложение должно иметь возможность работать в частных сетях компании.

Итак, моя цель — развернуть приложение, которое работает в удаленном режиме (для использования удаленных ресурсов из Интернета) и одновременно работает в частных сетях. Развертывание должно соответствовать ограничениям процесса сертификации магазина.

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

Спасибо за любую поддержку!

Комментарии:

1. В опубликованном вами документе Cordova уже предлагается обходной путь: «Ограничения, связанные с сетью, должны быть устранены либо с помощью API, который не использует проверки возможностей, либо путем посредничества в обмене данными через стандартные каналы интернет-связи, такие как XMLHttpRequest или веб-сокеты».

2. У меня такая же проблема. у вас есть решение или обходной путь. пожалуйста, дайте мне знать.

Ответ №1:

Оказалось, что другие API, отличные от того, который я использовал раньше, отлично работают при развертывании приложения в локальном режиме (так что Элвис Ся был прав). Я не могу объяснить, почему этот конкретный плагин jQuery не работает в моем контексте, каким-то образом это вызывает небезопасную ошибку вставки скрипта (хотя он использует простой метод jQuery html ()).).

В любом случае, я развернул приложение в локальном режиме (ms-appx:/// prefix), добавил нужные возможности в package.windows10.appxmanifest (например, internetClient), и теперь у меня все получилось, например, при использовании простых вызовов ajax.