使用android保留在Web视图中

时间:2013-10-22 06:37:49

标签: android android-webview

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

2 个答案:

答案 0 :(得分:0)

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

<Your_WebView>.setWebViewClient(new WebViewClient());   

答案 1 :(得分: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;
    }
}

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; } }