android - 在 Android Webview 中使用元视口(viewport)宽度

标签 android android-webview android-browser

我想使用 viewport 标签将 html 内容放入 WebView。

<meta name='viewport' content='width=640'/>

这似乎在 Chrome 浏览器中运行良好,但无法缩放以适应 WebView。我做了一个简化的测试 Activity :

public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //--------------------------------------------------
        // Create a simple html page including viewport tag.
        //--------------------------------------------------

        String html = "<!DOCTYPE html>" +
                "<html>" +
                "<head>" +
                "<meta name='viewport' content='width=640'/>" +
                "<title>Viewport Test</title>" +
                "</head>" +
                "<body style=\"margin: 0px;\">" +
                "<div style=\"width: 600px; height: 600px; border: 20px solid green; background-color: red;\"></div>" +
                "</body>" +
                "</html>";

        //-----------------------------------
        // Place html in WebView.
        //-----------------------------------

        WebView webView = new WebView(this);

        webView.loadData(html, "text/html", "utf-8");

        setContentView(webView);

        //-----------------------------------
        // Launch Chrome with the same html.
        //-----------------------------------

        Intent intent = new Intent(Intent.ACTION_VIEW);

        intent.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.android.chrome.Main"));

        intent.setData(Uri.parse("data:text/html;charset=utf-8;base64," + Base64.encodeToString(html.getBytes(), Base64.NO_WRAP)));

        startActivity(intent);
    }
}

任何人都可以解释原因或提出修复建议吗?

最佳答案

好的,你必须使用:

    WebSettings settings = webView.getSettings();
    settings.setLoadWithOverviewMode(true);
    settings.setUseWideViewPort(true);

而且,如果您像这样设置 user-scalable=0,它也会中断:

    <meta name='viewport' content='width=640, user-scalable=0'/>

关于android - 在 Android Webview 中使用元视口(viewport)宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460623/

相关文章:

android - switch语句不切换

java - 通过互联网实现下载文件的简历

java - Android WebView 获取本地存储值

android - 在 Android 中的单个菜单项中实现三个操作

css - Galaxy S4 库存浏览器 CSS3 border-radius 支持吗?

android - 在线性布局中的按钮之间留出相同的空间

android - 如何使按钮重定向到另一个 XML 布局

android - 使用 ADB 的 HTML 查看器错误 "Err cache Miss"

android - 在 Chrome 上播放视频与在 Android 7+ 上播放 Android WebView 有何不同?

javascript - 安卓键盘关闭后一直出现