gpt4 book ai didi

c# - 如何在android Webview中输入文字和点击按钮? (c# Xamarin)

转载 作者:行者123 更新时间:2023-11-30 21:50:50 26 4
gpt4 key购买 nike

我在我的树莓派上运行了 mjpg 流媒体,我制作了一个 android 应用程序来观看流媒体,我只是在那里放了一个 webview 并让它导航到我的流媒体 URL,但现在我在 mjpg 流媒体上启用了密码功能。当我进入页面时,会弹出一个询问用户名和密码的窗口:

Login prompt

现在我需要我的应用程序以某种方式在我每次打开应用程序时自动输入用户名和密码。

我做了一些研究,我唯一能找到的是用于 C# Windows 窗体的 Web 浏览器控件:

webBrowser1.Document.GetElementById("username").SetAttribute("value", "supersecretusername");
webBrowser1.Document.GetElementById("Log_in").InvokeMember("click");

但不要认为这些可以在 android 的 webview 和 javascript 的警报上工作。

有没有办法在这些字段中输入用户名和密码并自动单击按钮,或者有没有办法输入一次并以某种方式保存它们?

我还应该提一下,我是编程新手,而且我的母语不是英语(正如您可能会说的那样),谢谢。

最佳答案

您可以使用 LoadUrl 方法将 JavaScript 注入(inject)您的 WebView。这是它在 Android 中如何工作的快速示例:

1) 获得 WebView 引用后,您需要将 JavaScript 设置为启用

        var webBrowser = this.FindViewById<WebView>(Resource.Id.webView1);
webBrowser.Settings.JavaScriptEnabled = true;

2) 要处理加载事件,您需要分配一个 WebViewClient

        webBrowser.SetWebViewClient(new Client());

3) 出于演示目的,我创建了一个示例 HTML 页面并从 Assets 中加载它:

        webBrowser.LoadUrl("file:///android_asset/main.html");

4) 客户端本身

public class Client : WebViewClient
{
public override void OnPageFinished(WebView view, string url)
{
base.OnPageFinished(view, url);

if (!url.Contains("main.html")) return;

var username = "supersecretusername";
var password = "supersecretpassword";

// to ensure Log_in click isn't called before username & password are set lets
// create the script as single item instead of calling them separately
var script = $"document.getElementById(\"username\").value = \"{username}\";" +
$"document.getElementById(\"password\").value = \"{password}\";" +
"document.getElementById(\"Log_in\").click()";

view.LoadUrl($"javascript: {script}");

// separate calls
//view.LoadUrl("javascript: document.getElementById(\"username\").value = \"sami\";document.getElementById(\"password\").value = \"password\";");
//view.LoadUrl("javascript: document.getElementById(\"password\").value = \"password\"");
//view.LoadUrl("javascript: document.getElementById(\"Log_in\").click()");
}
}

关于c# - 如何在android Webview中输入文字和点击按钮? (c# Xamarin),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36084057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com