У меня есть простой веб-просмотр с флаттером, которому нужно получить логин с веб-страницы. В файле js есть функция saveUserPass, которая возвращает имя пользователя и пароль, которые я пытаюсь использовать с каналами js. но я столкнулся с исключением
[INFO:CONSOLE(13920)] "TypeError: Cannot read property 'messageHandlers' of undefined at saveUserPass (https://komitenti.lion-group.rs/view_login/login.js:118:17)
Мой виджет Webview:
WebView(
initialUrl: "https://komitenti.lion-group.rs/",
javascriptMode: JavascriptMode.unrestricted,
debuggingEnabled: true,
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
javascriptChannels: <JavascriptChannel>[
JavascriptChannel(name: 'saveValeus', onMessageReceived: (JavascriptMessage msg) { print(msg); }),
].toSet(),
onWebViewCreated: (WebViewController controller) {
controller = controller;
},
),
)
И функция входа js -
function saveUserPass(credentials){
if (typeof Android !== 'undefined') {
if (Android.saveValues !== 'undefined') {
Android.saveValues(credentials.username, credentials.password);
}
}
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
if (iOS) {
window.webkit.messageHandlers.saveValeus.postMessage({"name": credentials.username,"pwd": credentials.password});
}
}
}