Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android通过Webview发布表单数据_Java_Android_Post_Android Webview_Form Data - Fatal编程技术网

Java Android通过Webview发布表单数据

Java Android通过Webview发布表单数据,java,android,post,android-webview,form-data,Java,Android,Post,Android Webview,Form Data,我的html代码中有以下实现 <!doctype html> <html ng-app="app"> <head> <title>post data</title> </head> <body> <div> <form action="https://mypaymentgateway/pay" method="post">

我的html代码中有以下实现

<!doctype html>
<html ng-app="app">
<head>
<title>post data</title>
</head>
<body>
<div>  
<form action="https://mypaymentgateway/pay" method="post">

<input type="hidden" id="profile_id" name="profile_id" value="123" />
<input type="hidden" id="transaction_id" name="transaction_id" value="abcd" />
<input type="hidden" id="locale" name="locale" value="en" />
<input type="submit" id="btnsubmit" value="Confirm" /> 

</form>
</div>

</body>
</html>

发布数据

我想做的是通过调用我的支付url的POST方法在webview中提交上述值(“https://mypaymentgateway/pay)而无需点击“确认”按钮。我也尝试过解决方案和其他来源。但似乎一切都不正常。请帮助我解决此问题。

如果您想在不按按钮的情况下发布表单,请尝试自己调用
表单。submit()

根据您的需要,有两种方法可以做到这一点,一种是通过HTML文件本身上的JavaScript,另一种是通过启用WebView组件的Java文件

通过HTML文件中的JavaScript:

<form id="myForm" action="https://mypaymentgateway/pay" method="POST"> ... </form>
<script>
function submitMyForm() {
    var myForm = document.querySelector("#myForm");
    myForm.submit();
}
</script>
//First enable your JavaScript
webView.getSettings().setJavaScriptEnabled(true);

//And then with a loadURL you can trick the WebView into executing Javascript
webView.loadUrl("javascript:submitMyForm");

归功于:

您可以使用JavaScript并触发一个
表单。submit()
?是的,这是可能的。我该怎么做呢?您是想在webview之外的Java代码中调用它,还是在webview内部使用javascript调用它?这将取决于当您试图以html代码格式通过Java代码手动提交表单以实现时,我应该将js函数放在哪里?我得到了
I/chromium:[INFO:CONSOLE(1)]“uncaughtreferenceerror:submitMyForm未定义”,来源:(1)
error直接位于
tags中的任何地方如果
loadUrl
不适合您,您可以尝试一下,我的java代码如何知道运行哪个js函数?我的意思是我把html和js代码保存在一个字符串变量中。那么我该怎么说呢?你是什么意思?将函数添加到字符串变量中,当您说
javascript:myFunction
evaluateJavaScript(“myFunction”)
时,您已经告诉Java要调用哪个函数了