1

如果我使用按钮,它可以工作,但它会重定向到默认浏览器。我想使用 webview,因为我想在我的 webview 中显示网站并避免显示地址栏。

这是我的代码:

公共类 MainActivity 扩展 Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main1);

    WebView webview = (WebView) findViewById(R.id.webView1);
    webview.loadUrl("http://docs.google.com/gview?embedded=true&url=http://178.239.16.28/fzs/sites/default/files/dokumenti-vijesti/sample.pdf");
    webview.setWebViewClient (new WebViewClient());

}

4

3 回答 3

1

试试下面的代码序列,如果有任何问题,请告诉我。不要忘记向您的 AndroidManifest.xml 添加权限

<uses-permission android:name="android.permission.INTERNET" />

更改为以下:

WebView webview = (WebView) findViewById(R.id.webView1);
webview.setWebViewClient (new HelloWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://docs.google.com/gview?embedded=true&url=http://178.239.16.28/fzs/sites/default/files/dokumenti-vijesti/sample.pdf");

并使用以下片段

private class HelloWebViewClient extends WebViewClient {


        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);

        }
于 2013-05-07T05:03:05.127 回答
0

使用这条线..

package org.example.webviewdemo;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class WebViewDemo extends Activity {


    private WebView webView;


    Activity activity ;
    private ProgressDialog progDailog; 

    @SuppressLint("NewApi")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        activity = this;

        progDailog = ProgressDialog.show(activity, "Loading","Please wait...", true);
        progDailog.setCancelable(false);



       webView = (WebView) findViewById(R.id.webview_compontent);



       webView.getSettings().setJavaScriptEnabled(true);     
       webView.getSettings().setLoadWithOverviewMode(true);
       webView.getSettings().setUseWideViewPort(true);        
        webView.setWebViewClient(new WebViewClient(){

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                progDailog.show();
                view.loadUrl(url);

                return true;                
            }
            @Override
            public void onPageFinished(WebView view, final String url) {
                progDailog.dismiss();
            }
        });

        webView.loadUrl("http://docs.google.com/gview?embedded=true&url=http://178.239.16.28/fzs/sites/default/files/dokumenti-vijesti/sample.pdf");

    }


}

它将显示加载程序,直到加载文件。然后加载器在使用谷歌文档加载文件后隐藏。希望这会帮助你。

于 2013-05-07T06:05:20.050 回答
0

您的网址正在重定向。

您必须覆盖shouldOverrideUrlLoading

让宿主应用程序有机会同步处理关键事件。例如菜单快捷键事件需要这样过滤。如果返回 true,WebView 将不处理按键事件。如果返回 false,WebView 会一直处理 key 事件,因此视图链中的 super 都不会看到 key 事件。默认行为返回 false。

参数

view 正在启动回调的 WebView。

事件 关键事件。

如果宿主应用程序想要自己处理按键事件,则返回True,否则返回 false

于 2013-05-07T04:27:48.560 回答