2014-01-17 155 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