2014-11-25 43 views
0

我正在開發一個帶有WebView和推送通知的Android應用程序。 問題是,我正在顯示的網站有登錄。Android WebView將名稱分配給DeviceID

我想要做的是: 如果有人通過我的應用程序(WebView!)登錄到網站,我需要輸入他輸入的用戶名並使用Android-Device-ID將其放入我的MySQL數據庫。 (但只是,如果他的密碼是正確的..)

有沒有人知道一個優雅的方式來做到這一點?我卡住了。

回答

0

我找到了解決方案。我把一個alertdialog通過網站的原始登錄。 之後,我將Java腳本代碼注入到URL中,該URL填寫網站上的表單,然後自動提交。 如果有人有興趣,我這樣做是這樣的:

AlertDialog爲登錄

private void logIn() { 
     LayoutInflater factory = LayoutInflater.from(this); 
     final View textEntryView = factory.inflate(R.layout.activity_login, null); 
     final EditText username = (EditText) textEntryView.findViewById(R.id.username); 
     final EditText password = (EditText) textEntryView.findViewById(R.id.password); 
     username.setText("", TextView.BufferType.EDITABLE); 
     password.setText("", TextView.BufferType.EDITABLE); 
     final AlertDialog.Builder alert = new AlertDialog.Builder(this); 

     alert.setTitle(Html.fromHtml("<font color='#ffffff'>Login</font>")); 
     alert.setView(textEntryView); 
     alert.setPositiveButton("Login", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
         User = username.getText().toString(); 
         Pw = password.getText().toString(); 
         autoFillIn(); 
        } 
       }); 
     alert.setNegativeButton("Cancel", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, 
             int whichButton) { 
        } 
       }); 
     alert.show(); 
} 

然後autoFillIn

public void autoFillIn(){ 
     mWebview.getSettings().setJavaScriptEnabled(true); 
     mWebview.setWebViewClient(new WebViewClient() { 
     public void onPageFinished(WebView view, String url) { 
      view.loadUrl("javascript:document.getElementById('LoginForm_username').value = '" + User + "';document.getElementById('LoginForm_password').value='" + Pw + "';document.forms[0].submit();"); 
     } 
    }); 
    mWebview .loadUrl(frontendurl); 
    setContentView(mWebview); 

} 

希望這可以幫助別人。 而我始終是敞開的更好的想法..

編輯: 「frontendurl」是我想通過web視圖中顯示的URL字符串..