2014-01-17 81 views
0

我使用webview通過使用url格式訪問http身份驗證站點: http://username:[email protected]。在一些4.4設備上我登錄了一些其他的軟糖豆,我不是。我能做什麼? PS:我不能在AVD管理選擇舊的目標SDK雖然我下載了一些使用HTTP身份驗證的Webview

public class Main extends Activity { 
WebView mWebView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 






@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    Bundle icicle = null; 
    super.onCreate(icicle); 
    setContentView(R.layout.main); 

    //SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
    //String restoredText = prefs.getString("text", null); 
    //if (restoredText != null) 
    //{ 
     //mSaved.setText(restoredText, TextView.BufferType.EDITABLE); 
     //long name = prefs.getLong("name", -1); 
     //long pw = prefs.getLong("pw", -1); 
     /*if (selectionStart != -1 && selectionEnd != -1) 
     { 
     mSaved.setSelection(selectionStart, selectionEnd); 
     }*/ 
    //} 





    //----------------------------------------------------------------------- 
    mWebView = (WebView) findViewById(R.id.webview); 

    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setSavePassword(true); 
    webSettings.setSaveFormData(false); 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setSupportZoom(true); 

    mWebView.setWebChromeClient(new MyWebChromeClient()); 

    mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo"); 


    // mWebView.setHttpAuthUsernamePassword(url", "", "usr", "pw"); 

    mWebView.setWebViewClient(new WebViewClient() { 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        view.loadUrl(url); 
        return true; 
        }}); 

    mWebView.loadUrl("//here url stuff"); 
    //return false; 


    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.activity_main, menu); 

    MenuInflater inflater1 = getMenuInflater(); 
    inflater1.inflate(R.menu.reload, menu); 



    return true; 


} 






final class DemoJavaScriptInterface { 

    DemoJavaScriptInterface() { 
    } 


    public void clickOnAndroid() { 
     Handler mHandler = null; 
     mHandler.post(new Runnable() { 
      public void run() { 
       mWebView.loadUrl("javascript:wave()"); 
      } 
     }); 

    } 
} 

//chrome 
final class MyWebChromeClient extends WebChromeClient { 
    private final String LOG_TAG = null; 

    @Override 
    public boolean onJsAlert(WebView view, String url, String message, JsResult result) { 
     Log.d(LOG_TAG, message); 
     result.confirm(); 
     return true; 
    } 






} 

回答

0

首先你不需要在onCreateOptions菜單中的setContentView更好的以移動的WebView代碼到的onCreate metot

你檢查的logcat也許你越來越android.os.NetworkOnMainThreadException因爲你正試圖做一些onCreateOptionsMenu方法

+0

logcat沒有說這樣的那樣 – NiklasM