0

Android 4.0 でフォーム送信が機能しません。下位バージョンの Android でも同じコードが正常に機能します。

参照用に私のコードを見つけてください

<form id="login-form" data-ajax="false" method="get" action="POST"> 
<div id="userPassLogin">
  <div id="loginFormButtondiv" style="display: none;">
          <a href="#" id="loginFormButton"  style="font-size: small">Back to Login</a> 
      </div>
    <div id="loginDiv">
      <div data-role="fieldcontain" style="border: none; margin-top: 10px;">
      <input style="width: 95%" type="email" class="placeholder" name="login" id="username" placeholder="Login ID" data-theme="c"  value="Test286826.User286826@alere.com" />
  </div>
  <div data-role="fieldcontain" style="border: none; margin-top: 0px;">
  <input style="width: 95%" type="password" class="placeholder" name="password" id="password" placeholder="Password" data-theme="c"  value="P@ssw0rd" />
  </div>
 </form>

コントローラーコードは、

'submit #login-form' : 'onSubmit',

メソッド宣言と定義は、

onSubmit : function(event)
{
    alert('Inside the Form Submit');
    if(isIOS){
        nativeCommunication.callNativeMethod("networkcheck://isServerHosted?");
    }
    if(isAndroid || mHealth.util.webHostStatus){
        alert('Inside the Form Submit');
        event.preventDefault();
        alert('Inside the Form Submit');
        if(isAndroid){
            alert('Inside the Form Submit');
            this.doLogin();
        }
    }
},

どんな助けでも素晴らしいでしょう。

ありがとう

4

1 に答える 1

1

オーバーライド WebViewClient で修正しました

プライベート クラス MyWebViewClient は WebViewClient を拡張します {

    public String values = "";
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        if (url.contains("?")) {
            try {
                values = URLDecoder.decode(url, "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            url = url.replace("?", "%45");
            String args[] = url.split("%45");
            view.loadUrl(args[0]);
        }else{
            view.loadUrl(url);
        }
        return true;
    }


    @Override
    public void onPageFinished(WebView view, String url) {
        if(values.length()>0){
            if(url.contains("page2.html")){
                mWebView.loadUrl("javascript:getUrlVars(\""+values+"\");");
            }
        }
        super.onPageFinished(view, url);
    }

}
于 2012-12-17T08:48:08.660 に答える