【问题标题】:How to open a URL with specific settings?如何打开具有特定设置的 URL?
【发布时间】:2013-03-05 01:02:03
【问题描述】:

大家好。

这是我的代码。我在我的应用程序中创建了一个菜单。其中一项可以正确打开 URL。但我想用这个WebSettings 打开WebView 中的URL。但它不起作用。

public boolean onMenuItemSelected(int featureId, MenuItem item) {
    switch (item.getItemId()) {
    case WEBSITE:
        Toast.makeText(Activity.this, "About", Toast.LENGTH_SHORT).show();
        Uri uri = Uri.parse("http://www.english.com/about");
        Intent it = new Intent(Intent.ACTION_VIEW,uri);
        WebView web = new WebView(this);
        WebSettings webSettings = web.getSettings();
        webSettings.setSavePassword(false);
        webSettings.setSaveFormData(false);
        webSettings.setJavaScriptEnabled(true);
        webSettings.setSupportZoom(false);
        startActivity(it);
        return true;

那些网络设置不起作用。

【问题讨论】:

    标签: android android-intent android-webview android-websettings


    【解决方案1】:

    启动浏览器以查看网页意味着您将自己受制于浏览器将显示 url,并且您无法控制另一个应用程序的定义设置。如果您尝试使用自己的 WebView,您将像这样加载 URL:

     webview.loadUrl("http://www.english.com/about");
    

    【讨论】:

      【解决方案2】:

      您做错了两件事:1) 您创建了一个新的WebView,但从未将其附加到您的视图树中;2) 您要求外部应用程序处理您要显示的 url 的查看。您需要将WebView 添加到您的xml 布局文件中,或者通过在您的根视图上使用view.addChild(web); 附加到视图树。一旦WebView 成为您的视图树的一部分,只需调用web.loadUrl(...); 来加载网页。由于您不想在外部浏览器上打开网页,因此您应该摆脱 Intent it =...startActivity(it);

      如果您想在不同的 Activity 上打开网页,只需在其布局中创建一个带有 webview 的新 Activity。你可以在here找到一个例子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多