2011-09-16 128 views
0

此代码正在处理另一个aspx表单,现在当我更改表单时,它可以在黑莓的webview中工作,但是现在android已经启动了一个外部浏览器,甚至在应用程序启动之前就知道了。Webview在屏幕外加载?

webview = (WebView) findViewById(R.id.webView1); 
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.setInitialScale (5); 
    webview.loadUrl(URL); 
    webview.requestFocus(View.FOCUS_DOWN); 

为什么它现在加载在浏览器之外?

回答

1

您只需要实施shouldOverrideUrlLoading()。从我最近的一个项目一个片段:

public class WebViewCustom extends Activity { 

WebView mWebView; 
String mUrl; 
String urlHistory; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 


     setContentView(R.layout.lessons_page); 
     mWebView = (WebView) findViewById(R.id.webview); 
     mWebView.setWebViewClient(new WebViewOverrideUrl()); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.getSettings().setPluginsEnabled(true); 
     mWebView.loadUrl("YOUR-URL-HERE"); 


    } 

     private class WebViewOverrideUrl extends WebViewClient { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url); 
       return true; 
      } 
     } 

}

编码愉快!

+0

辉煌的作品魅力谢谢! –

0

推测,您的服务器正在发出重定向。如果您实施WebViewClient并使其覆盖shouldOverrideUrlLoading(),则可以强制将重定向加载到WebView本身中。