Android WebView iFrame 字体缩放

标签 android iframe android-webview amazon-fire-tv

我有一个应用程序,基本上只是加载一个网站来显示该信息。在网站内,我有一个加载事件日历的 iframe。

在计算机上(通过 Chrome)查看网站, Activity 日历看起来完全符合预期(是的,我知道字体小得离谱)。

通过 Android 应用程序在 FireTV Stick 上查看网站时,iFrame( Activity 日历)中的字体会放大。

我注意到,对于 FireTV,当分辨率为 1920x1080 时,实际显示分辨率为 960x540(将浏览缩小到会产生相同的效果)@见Screen Size and Resolution

Chrome 中的图像(正确显示) Image in Chrome (displays correctly) FireTV WebView(不正确) FireTV (incorrect) 我还阅读了 Font-Boosting ,这最初是我认为的问题所在,但我已经消除了它,因为没有任何技术可以“禁用”它(html * {max -高度:99999999px,等等...)

我觉得问题似乎在于我在 Android 应用程序中调用 WebView 的方式以及正在应用的设置。我几乎可以肯定我在那里遗漏了一些可以解决这个问题的东西。这是我的 WebView 设置:

mWebView = (WebView) findViewById(R.id.activity_main_webview);
WebSettings webSettings = mWebView.getSettings();

webSettings.setJavaScriptEnabled(true);
webSettings.setMediaPlaybackRequiresUserGesture(false);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setSupportZoom(true);
webSettings.setDefaultFontSize(12);
mWebView.setInitialScale(1);

编辑 1: 好吧,我发现不仅是 iFrame 正在扩大,而且是 FireTV 上的所有内容(这显然是一项功能)。它们的显示分辨率 (dp) 为 960x540。似乎无法将内容设为 1920x1080,但当我通过 Rise Vision 的“My Rise Player”应用程序显示 iframe 时,一切都显示正常。

他们是如何找到让 FireTV 显示 1920x1080 分辨率的方法的?

如果 Rise Vision 开发团队中的任何人愿意发表评论并为我指明正确的方向,我将不胜感激!

最佳答案

这个问题的解决方案相当简单。我只需要将这些值设置为 100

mWebView.getSettings.setTextZoom(100);
mWebView.setInitialScale(100);

感谢@altskop 让我朝着正确的方向前进

对于那些想知道其余代码的人,请看这里:

WebView mWebView = (WebView) findViewById(R.id.activity_main_webview);
WebSettings webSettings = mWebView.getSettings();

mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        Log.d(TAG, "Finished Loading.");
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
});

webSettings.setJavaScriptEnabled(true);
webSettings.setMediaPlaybackRequiresUserGesture(false);
webSettings.setTextZoom(100);

mWebView.setInitialScale(100);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.loadUrl("http://your.url.com");

关于Android WebView iFrame 字体缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45570552/

相关文章:

android - 适配重装安卓

javascript - iframe JS富文本编辑器问题

Android WebViewClient 没有覆盖 URL

android - 如何在 WebView Android 应用程序中禁用 Google Adsense?

android - ListView 的多线程使错误的项目/根本没有项目出现

android - Mpandroid 美容问题

javascript - 将 iframe 中使用 Audio 对象创建的音频静音

javascript - iframe 在 chrome/safari 中使用 scrollheight 调整大小

android - 如何打开具有特定设置的 URL?

android - GCMRegistrar.getRegistrationId(this) 始终返回空字符串(使用 GCM 的 Android 推送通知)