0

我正在编写一个应用程序来在我的活动中启动 webView。但它是在网络浏览器中启动的。

我也参考了链接本教程

但是当我使用时shouldOverrideUrlLoading,我只能得到空白屏幕。

对于那个问题,我参考了这个链接

但是在我的情况下没有人帮助..

我已经给出了我的代码。

请注意我犯了什么错误?

我的代码是:

webview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal|center_vertical"
    android:orientation="vertical" >

    <WebView
        android:id="@+id/webView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_horizontal|center_vertical" >
    </WebView>

</LinearLayout>

WebViewActivity.java

public class webViewActivity extends Activity {

    private WebView webView;
    private String strUrl;
    public final String TAG = "webViewActivity";
    ProgressBar progBar;

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        getWindow().requestFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.webview);
        Bundle bundle = getIntent().getExtras();
        strUrl = bundle.getString("URL");
        Log.d(TAG, "link is " + strUrl);
        // strUrl = "www.google.com";
        webView = new WebView(this);
        webView.loadUrl(strUrl);

        // progBar = (ProgressBar)findViewById(R.id.progWeb);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // TODO Auto-generated method stub
                view.loadUrl(strUrl);
                return true;
            }
        });
}

请帮助纠正我的错误。

先感谢您!!

4

2 回答 2

3
    <WebView
    android:id="@+id/webView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_horizontal|center_vertical" >
   </WebView>

在您的活动中,您需要找到 webview 的 id。

webView = new WebView(this);

您正在创建一个 webview,但您没有将其添加到您的布局中

您已经在 xml 中定义了 webview,因此无需再次创建相同的。找到 webview 的 id 并相应地加载 url。

   setContentView(R.layout.webview);
   webView = (WebView) findViewById(R.id.webView);// you need to find the id of webview
   Bundle bundle = getIntent().getExtras();
   strUrl = bundle.getString("URL");      
   webView.loadUrl(strUrl);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub
            view.loadUrl(strUrl);
            return true;
        }
    }); 

确保您已在清单文件中添加 Internet 权限

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

检查以下链接中的编辑 2 以获取工作示例

在 WebView 中启用后退按钮

于 2013-04-23T07:56:36.803 回答
0

我试过你的代码,问题在于动态调用 webview 检查。你没用过

          setContentView(webView);

试试这个 ...

于 2013-04-23T09:18:05.980 回答