WebView无法在内部加载网页

时间:2014-04-21 13:36:11

标签: android url android-fragments webview android-webview

我想在片段内加载网页,但是有一些问题。

1.没有overriding shouldOverrideUrlLoading方法,该网站使用默认浏览器Chrome打开。

2.当覆盖shouldOverrideUrlLoading时,没有任何反应。只创建了新的空白活动。 这是onCreateView

中的Fragment方法
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View resultView = inflater.inflate(R.layout.container, container, false);

    if (getArguments() != null) {
        String url  = getArguments().getString(KEY_URL);

        WebView productDetailView = (WebView)resultView.findViewById(R.id.webView);
        productDetailView.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return super.shouldOverrideUrlLoading(view, url);
            }
        });

        productDetailView.loadUrl(url);
    }
    return resultView;
}

targetSdkVersion19并添加了INTERNET权限,Fragment的XML文件如下所示。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.ProductDetailFragment">


    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/webView"
        android:layout_gravity="center" />

</FrameLayout>

问题是什么?

4 个答案:

答案 0 :(得分:1)

试试此代码

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

});
webView.loadUrl(url);

并使用FLAG_ACTIVITY_NEW_TASK

开始您的活动

答案 1 :(得分:0)

      webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    Intent intent = getIntent();
    webView.setSaveEnabled(false);
    String receivedName = (String) intent.getSerializableExtra("USERNAME");
    Log.d("receivedName ----- ", receivedName);
    webView.loadUrl("https://docs.google.com/gview?embedded=true&url=" +  
          receivedName);
    webView.setDownloadListener(new DownloadListener() {
        public void onDownloadStart(String url, String userAgent,
                String contentDisposition, String mimetype,
                long contentLength) {
          Webview.this.finish();
            }
    });

试试这段代码......

答案 2 :(得分:0)

试试这个。

    final ProgressDialog pd = ProgressDialog.show(ActivityA.this, "", "Loading...", true);  
     wv = (WebView) findViewById(R.id.webview); 
     wv.getSettings().setJavaScriptEnabled(true);
     wv.loadUrl("<url");
     wv.setWebViewClient(new WebViewClient() {
         @Override
         public void onPageStarted(WebView view, String url, Bitmap favicon)
         {
             pd.show();
         }
         @Override
         public void onPageFinished(WebView view, String url) {
             pd.dismiss();
                 }
    });

答案 3 :(得分:0)

您是否尝试过添加此<uses-permission android:name="android.permission.INTERNET" />  进入清单文件? https://developer.android.com/reference/android/webkit/WebView.html