0

我有一个网站,我制作了移动版。现在,我想要的是在 Web 视图中打开 URL 并成功地完成了它,接下来我希望当用户登录或单击任何按钮时,它应该保留在 Web 视图中,而不是进入浏览器。我以前没有做过这种工作,所以我想知道是否可以做到。例如,如果网站有 4 个链接,那么当我单击任何链接时,它应该在 Web 视图中打开,但现在它会将其带到浏览器。

4

2 回答 2

0

我不知道您是如何构建的webView,但如果您在实例化后使用以下行webView,将解决您的问题。

<Your_WebView>.setWebViewClient(new WebViewClient());   
于 2013-10-22T07:17:03.157 回答
0

这将帮助您:

http://javatechig.com/android/android-webview-example/

这是一个 android 默认行为,当从 WebView 中单击链接时,它会在默认的 android 浏览器中打开链接。如果我们想要这种烦人的特性,并且总是在浏览器字段中打开链接而不是重定向到默认浏览器,那么我们就拦截了点击事件。

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;

public class WebViewActivity extends Activity {
    private WebView webView;
    private EditText urlEditText;

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

        urlEditText = (EditText) findViewById(R.id.urlField);
        webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new MyWebViewClient());

        Button openUrl = (Button) findViewById(R.id.goButton);
        openUrl.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                String url = urlEditText.getText().toString();
                if(validateUrl(url)){
                    webView.getSettings().setJavaScriptEnabled(true);
                    webView.loadUrl(url);
                }
            }
            private boolean validateUrl(String url) {
                return true;
            }
        });    
    }

    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.web_view, menu);
        return true;
    }
}

于 2013-10-23T23:15:07.993 回答