从应用中填写网络表单并提交

时间:2017-11-20 14:39:18

标签: android html forms android-webview

我有一个简单表单的网页,其中包含3个输入字段,名称,电子邮件和课程以及提交按钮。没什么好看的。

在开发Android应用程序时,我想知道如何在我的Android应用程序中填写该Web表单而不使用webview来实际加载网页。

6 个答案:

答案 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)

没有使用网页浏览功能,无法将网页加载到移动应用中。或者你也可以:

  1. 在android中使用输入
  2. 创建表单
  3. 设置网络服务以提交数据
  4. 请参阅this android simple form submit tutorial了解分步指南

答案 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");
        }
    });
相关问题