2016-11-07 4 views
1

私は記入して自動的に提出したいフォームがあります。彼はWebviewClientを使って試してみましたが、WebビューのevaluateJavascriptを使う前にページの読み込みが完了するまで待っていました。それはすべて見えると私のjavascriptは、バリデーターオンラインで有効であるようです。だから問題がどこにあるのかわからない。ウェブビューでウェブページ上でjavascriptを実行する方法

//Login infomration get from stored perferences. 
String username = "[email protected]"; 
String password = "G12345!"; 
String javaScriptToLoadEmail = "document.getElementById(\"email\").value = \"" + username + "\";"; 
String javaScriptToLoadPass = "document.getElementById(\"pass\").value = \"" + password + "\";"; 
String javaScriptForm = "var frms = document.getElementsByName(\"send2\");"; 
String javaScriptSubmit = "frms[0].submit();"; 
String superJavaScript = "<script> " + 
     javaScriptToLoadEmail + 
     javaScriptToLoadPass + 
     javaScriptForm  + 
     javaScriptSubmit + 
     " </script>"; 
WebView webView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Log.d("Java Script", superJavaScript); 

    webView = (WebView)findViewById(R.id.webview); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setDomStorageEnabled(true); 
    webView.loadUrl(LoginPage); 
    webView.setWebViewClient(new WebViewClient() 
    { 
     @Override 
     public void onPageStarted(WebView view, String url, Bitmap facIcon) { 
      Log.d("Page is: ", "Loading"); 
      //SHOW LOADING IF IT ISNT ALREADY VISIBLE 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 

      Log.d("Page is:" , "Loaded"); 
      Log.d("Java Script", superJavaScript); 
      webView.evaluateJavascript(superJavaScript, null); 
     } 
    }); 

} 

そしてこれは、私がアクセスして変更しようとしているHTMLフォームである:ここで

は、私は自分のコードのためのアンドロイドアプリに持っているものです。

<form action=“//…//“ method="post" id="login-form"> 

     <div class="col-2 registered-users"> 
      <div class="content"> 
       <h2><font><font>Customers who have already your registered</font></font></h2> 
       <p><font><font>If you have an account, please login.</font></font></p> 
       <ul class="form-list"> 
        <li> 
         <label for="email" class="required"><em><font><font>*</font></font></em><font><font> E-mail address</font></font></label> 
         <div class="input-box"> 
          <input type="text" name="login[username]" value="" id="email" class="input-text required-entry validate-email" title="mail address"> 
         </div> 
        </li> 
        <li> 
         <label for="pass" class="required"><em><font><font>*</font></font></em><font><font> Password</font></font></label> 
         <div class="input-box"> 
          <input type="password" name="login[password]" class="input-text required-entry validate-password" id="pass" title="password"> 
         </div> 
        </li> 

       </ul> 



     <div class="col-2 registered-users"> 
      <div class="buttons-set"> 
       <button type="submit" class="button f-right" title="Login" name="send" id="send2"><span><span><font><font>Login</font></font></span></span></button> 

      </div> 
     </div> 
    </div> 
     </form> 

これは私が文字列で送信するスクリプトです。

<script> document.getElementById("email").value = "[email protected]";document.getElementById("pass").value = "G12345!";var frms = document.getElementsByName("send2");frms[0].submit(); </script> 
+0

を追加するために、あなたはこれを行うための有効なインターフェイスを持っている必要があります。 –

答えて

1

試みは、あなたが完全に間違ってそれをやっている。このライン

webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
+0

変更なしそれでもスクリプトは実行されていません。 – MNM

関連する問題