首页 > 解决方案 > 从托管在 android Webview 中的网站获取用户登录详细信息

问题描述

我为我的网站创建了一个 Webview android 应用程序,以便拥有我的网站的 android 版本。该网站允许用户在继续访问网站信息之前登录。

请问,如何从我的 Webview android 应用程序中的网站获取用户登录详细信息(例如电子邮件)?

标签: androidsessionauthenticationloginwebview

解决方案


您可以WebView使用此函数获取内容:

yourWebView.evaluateJavascript(
        "(function() { return ('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>'); })();",
         new ValueCallback<String>() {
            @Override
            public void onReceiveValue(String html) {
                Log.d("HTML", html); 
                // Here you work with the content of the page which is stored in the 'html' variable
            }
    });

由于您能够阅读页面的内容,因此您可以在隐藏字段(例如<input type="hidden" id="emailAddress" name="emailAddress" value="someone@example.org">)中隐藏您想要在网站中阅读的数据。

或者您可以创建一个自己Activity的用户可以插入他的电子邮件地址的地方,然后您可以使用该WebView.postUrl(String url, byte[] postData)功能将插入的电子邮件地址发布到您的网站上(例如webView.postUrl("https://yourWebsite.com/index.php", "emailAddress=someone@example.org".getBytes());)。

来源: https ://developer.android.com/reference/android/webkit/WebView.html 如何从 webview 获取 html 内容? 如何为 WebView android 发布数据


推荐阅读