0

我正在创建一个显示论坛页面的简单 webview 应用程序。当然,论坛页面要求登录或注册,但是当我点击那里并尝试登录时,应用程序要求我在首选浏览器中登录后继续。我不想这样做,但我想继续在我的应用。有办法吗?如果需要,该论坛在 proboards.com 上托管。应用程序的代码非常简单。

MainActivity.java

public class MainActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        webView = (WebView) findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl("http://www.website.com");

    }

}
4

1 回答 1

2

我不太确定你到底想要什么。让我知道这是否是你想要的。

当您使用时,webviews如果您想一直停留在webview一个特定的网站上,而不是让任何网页在浏览器中打开,而是在浏览器中打开,webview那么您可以执行以下操作:

在您的情况下,网站名称是

http://www.website.com

所以代码应该是:

            webView.loadUrl("http://www.website.com");
            WebSettings webSettings = webView.getSettings();
            webSettings.setJavaScriptEnabled(true);
            webView.setWebViewClient(new WebViewClient(){
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    try {
                      URL urlObj = new URL(url);
                      if( (url.startsWith("http://www.website.com")) ) {
                        //Allow the WebView in your application to do its thing
                        return false;
                      } else {
                        //Pass it to the system, doesn't match your domain
                        Intent intent = new Intent(Intent.ACTION_VIEW);
                        intent.setData(Uri.parse(url));
                        startActivity(intent);
                        //Tell the WebView you took care of it.
                        return true;
                      }
                    }
                    catch (Exception e) {
                      e.printStackTrace();
                    }
                    return false;

                }
            });
            {

            }

通过这样做,该网站中的任何页面都将在 webview 本身而不是浏览器中打开。希望这可以帮助。

于 2013-09-03T08:54:11.723 回答