Ответ 1
Три года спустя...
Но у меня та же проблема. И я нашел только одно решение.
Просто отключите куки перед запуском скрипта (код Kotlin):
companion object {
const val SOME_HTML = """
<!DOCTYPE html>
<html>
<head>
<script>
if(!document.__defineGetter__) {
Object.defineProperty(document, 'cookie', {
get: function(){return ''},
set: function(){return true},
});
} else {
document.__defineGetter__("cookie", function() { return '';} );
document.__defineSetter__("cookie", function() {} );
}
// Your problem script here
</script>
</head>
</html>"""
}
//And
webView.settings.javaScriptEnabled = true
webView.loadData(CHARTA_HTML, "text/html; charset=utf-8", "UTF-8")
редактировать
Еще один обходной путь:
Если вы используете локальный HTML или жестко закодированный HTML, как в примере выше, вам нужно загрузить HTML, используя этот метод:
webview.loadDataWithBaseURL("https://yoursite.com", YOUR_HTML, "text/html; charset=utf-8", "UTF-8", null)
BaseURL использует для предотвращения "Uncaught SecurityError", когда вы используете локальный HTML с javascript, который пытается загрузить данные из ссылок BaseURL.