Я работаю над проектом, в котором пользовательский интерфейс уже разработан на Angular.Наше требование - загрузить этот пользовательский интерфейс в веб-браузер Android.Теперь нашему интерфейсу нужна некоторая информация с хост-устройства Android, например, список устройств BLE или список Wi-Fi.Так что мне нужно сделать мост между android нативным кодом и кодом Angular Typescript.До сих пор я могу вызывать код Android из кода машинописи, создавая интерфейс в Typescript следующим образом:
export class WebAppInterface {
showToast(toast: String): any;
}
То же самое я реализовал в Android следующим образом:
@JavascriptInterface
public void showToast(final String msg) {
mFragment.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(mFragment.getContext(), msg, Toast.LENGTH_LONG).show();
}
});
}
Явозможность вызывать функцию javascript снова следующим образом:
mWebView.evaluateJavascript("javascript:sampleFunction()", null);
Я объявил выше sampleFunction () в тег скрипта index.html, а не в угловом машинописи.
Мой вопрос, какВызов функции, которая написана на машинописном тексте, как это делают плагины Cordova.(PS: я не могу использовать Cordova в моем проекте).Можем ли мы передать обратный вызов из машинописного кода Angular на Android и как-нибудь вызвать эту функцию?До сих пор я понимаю, что я должен вызывать функцию javascript из собственного кода Android, а в этом коде javascript я должен вызывать код Typescript.Это правильный подход?Может кто-нибудь, пожалуйста, предложите, каков правильный подход к этому, поскольку я новичок в Angular и javascript.