我想用Twebbrowser将数据发送到Web,该数据由php $ _post方法接收,然后在webbrowser上将其显示为网页。此代码在我的vcl应用程序中可以完美工作
uses
httpapp;
Var
strData: string;
PostData: OleVariant;
Headers: OleVariant;
i: Integer;
url:string;
begin
url :='http://www.abc...com'
strData := 'id=' + HTTPEncode('ID') + '&' +
'ik=' + HttpEncode('ID2');
PostData := VarArrayCreate([0, Length(strData) - 1], varByte);
for i := 1 to Length(strData) do
PostData[i-1] := Ord(strData[i]);
Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
WebBrowser1.Navigate(url+'/logs.php',EmptyParam,EmptyParam,PostData,Headers);
end;
但是当我尝试将其用于android设备应用程序的fmx时,它会在webbrowser.navigate上向我发送错误消息“实际参数太多”。如何使用fmx webbrowser为fmx / android应用程序发布数据?
您可以创建自己的包括论坛和发布操作的html,并使用javascript自动为您发布表单,然后调用TWebBrowser.LoadFromStrings从字符串var加载html。
MyWebBrowser.LoadFromStrings({$I 'html\string_login_by_code.html.inc'},strSiteBaseURL);
““ html \ string_login_by_code.html.inc”文件看起来像:
'<HTML><HEAD></HEAD><BODY>'+
'<script>'+
'window.onload = function() '+
' {'+
' document.getElementById("v_login").submit();'+
' }'+
'</script>'+
'<form id="v_login" style="display:none" method="post" action="'+PostURL+'">'+
'<input type="hidden" name="'+chUserName+'" value="'+sUserName+'">'+
'<input type="hidden" name="'+chPassword+'" value="'+sPassword+'">'+
'<input type="submit" class="menu_submit" value=" ">'+
'</form>'+
'</BODY></HTML>'