我有一个简单表单的网页,其中包含3个输入字段,名称,电子邮件和课程以及提交按钮。没什么好看的。
在开发Android应用程序时,我想知道如何在我的Android应用程序中填写该Web表单而不使用webview来实际加载网页。
答案 0 :(得分:1)
我过去曾经使用过类似的东西。但是你必须加载一个webview(虽然你不需要显示它。)然后执行类似下面的操作。请记住,如果网站改变了id,那么这种方法将无效。
webView.loadUrl("javascript:var
name=document.getElementById('nameInput').value='" yourNameValue "'");
webView.loadUrl("javascript:document.getElementById('submit').click()");
答案 1 :(得分:1)
在build.gradle中添加此依赖项(模块:app)


 依赖项{
 implementation'com.android.support:customtabs: 27.0.2'
}



 在Activity中添加此方法。


 public boolean isPackageExisted(String targetPackage){
 PackageManager pm = getPackageManager();
试试{
 PackageInfo info = pm.getPackageInfo(targetPackage,PackageManager.GET_META_DATA);
 } catch(PackageManager.NameNotFoundException e){
返回false;
 }
返回true;
}



 添加此onCreate of Activity


 if(isPackageExisted(“com.android.chrome”)){
 CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
 CustomTabsIntent customTabsIntent = builder.build(); 
 customTabsIntent.intent.setPackage( “com.android.chrome”); 
 customTabsIntent.intent.setAction(Intent.ACTION_VIEW); 
 customTabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
 customTabsIntent.launchUrl(getApplicationContext(),Uri.parse(“Your URL”));
}



答案 2 :(得分:1)
没有使用网页浏览功能,无法将网页加载到移动应用中。或者你也可以:
答案 3 :(得分:1)
使用Volley来执行请求: https://developer.android.com/training/volley/index.html 然后你可以使用类型为multipart-form-data的帖子;),同时查看" action"表单的字段,以便您可以知道必须发送帖子请求的位置,并通过我所说的多部分表格数据发送数据。
答案 4 :(得分:0)
如果没有WebView,您无法加载网页,或者您可以在java中创建html页面。 您可以通过隐藏网址来表示网页作为您的应用页面 Disable address bar in Android webview
或者你想从url读取字符串意味着使用它 Get text from web page to string
答案 5 :(得分:0)
这更好
WebView web = (WebView)findViewById(R.id.web1);
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setDomStorageEnabled(true);
web.loadUrl("url_address");
web.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
web.loadUrl("javascript:document.getElementById('username').value = 'alireza'; null");
web.loadUrl("javascript:document.getElementById('password').value = '12345678'; null");
web.loadUrl("javascript:document.getElementById('login_button').click(); null");
}
});