Родные (C #, C ++) UI плагины для Cordova Windows? - PullRequest
1 голос
/ 01 мая 2019

Для Cordova iOS и Cordova Android можно создавать плагины, которые создают собственный пользовательский интерфейс поверх вашего приложения - вы просто включаете библиотеки в свой плагин и запускаете их API. Пример для Android InAppBrowser .

Для Cordova Windows собственный код равен HTML и Javascript, поэтому плагин InAppBrowser также добавляет стандартный HTML-тег дляWebview (или даже обычный Iframe), чтобы получить тот же эффект .

Но вы также можете создавать плагины для Cordova Windows, которые используют собственный код C # или C ++ через компонент времени выполнения Windows.Общедоступным примером является подключаемый модуль глобализации , который использует .winmd файл для предоставления API-интерфейсов к коду Javascript ( исходный код для этого ).Это прекрасно работает и довольно круто.

К сожалению, все плагины, которые я смог найти, используют этот собственный механизм плагинов C # / C ++ только для получения вызова некоторого метода, выполнения каких-либо действий с параметрами и возврата некоторых данных.Ни один из них не открывает никаких окон и не создает никакого другого графического интерфейса пользователя (который может, например, предлагаться внешним C # SDK).

Как можно создать плагин для Cordova Windows, который создает пользовательский интерфейс с собственным (C #, C ++)) код?Возможно ли это вообще?

1 Ответ

1 голос
/ 03 мая 2019

Получил ответ в списке рассылки Apache Cordova , который я воспроизводил здесь:

К сожалению, код C # / C ++ Portable Class Library (PCL) не может отображаться наверхняя часть веб-компонента.Библиотеки, которые вы можете использовать, ограничены в PCL, и для проектов, нацеленных на Магазин Windows, визуализация пользовательского интерфейса невозможна.
Если бы вся платформа cordova-windows была перепроектирована для создания приложений на C # или C ++ с собственнымКонтейнер webview для рендеринга, тогда все возможно.Хотя это очень рискованный путь ... все, начиная с cordova.js и моста, должно измениться, и каждый плагин должен быть переписан.

...