У меня есть локальное приложение в Angular 4, которое использует localStorage в браузере настольного компьютера для сохранения данных. Я использую WebViewer в AI для приложения.
Я знаю, что localStorage нельзя использовать в AI2 и необходимо использовать WebViewString или любое другое хранилище данных. Я также знаю, как проверить, запущено ли приложение в AI или браузере рабочего стола, используя window.AppInventor в Javascript.
Мой вопрос - Как проверить, работает ли приложение в AI с помощью Angular 4? Чтобы я мог использовать localStorage для рабочего стола и WebViewString для AI.
Я попытался использовать window.AppInventor в своем коде Angular, но получил сообщение об ошибке
Property 'AppInventor' does not exist on type 'window'





Нашел на это ответ :)
Мне нужно было получить ссылку на объект окна Javascript в Typescript. Когда я получаю ссылку, это то же самое, что использовать объект окна в Javascript.
https://juristr.com/blog/2016/09/ng2-get-window-ref/
Взгляните на приведенную выше ссылку, чтобы получить более подробную информацию о том, как получить ссылку на собственное окно. Как только мы получим ссылку, ее можно будет использовать как
if (this.winRef.nativeWindow.AppInventor) {
this.persistData = JSON.parse(this.winRef.nativeWindow.AppInventor.getWebViewString());
} else {
this.persistData = JSON.parse(localStorage.getItem("floodPersist"));
}