android - 从托管在 android Webview 中的网站获取用户登录详细信息
问题描述
我为我的网站创建了一个 Webview android 应用程序,以便拥有我的网站的 android 版本。该网站允许用户在继续访问网站信息之前登录。
请问,如何从我的 Webview android 应用程序中的网站获取用户登录详细信息(例如电子邮件)?
解决方案
您可以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 发布数据
推荐阅读
- node.js - 在 Mongoose 上填充和分页子文档
- c# - 如何在客户端系统上进行本地报表处理
- reactjs - 无法使用 useEffect 和 React Redux 映射数组
- java - 在水平滚动视图中自动转到最右边(最后一个水平子项)然后回到最左边(第一个子项)
- c# - 为什么我的 unity android apk 大小太大?
- c# - 将 webjob(Microsoft.Azure.WebJobs) 包更新到 3.0.16 版后,没有发生显式死信
- powershell - Windows 删除所有供应商和 node_modules
- spring-boot - 如何添加“授权:承载
" 在使用 Springdoc Open API 3 Spec 的 OAuth2 隐式流的标头中 - sql-server - SQL Server:外键引用无效表
- php - 连接 MariaDB10 Synology 时数据包乱序