在我的应用程序中,我在CustomTabsIntent或WebView中显示了一个外部HTML站点:
if (customTabsIntent != null) customTabsIntent.launchUrl(this, Uri.parse("http://some.where.com/site.html"));
else startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://some.where.com/site.html")));但是HTML的样式已经更新了,但是我的智能手机显示了旧的样式(旧字体等等)。
在*.html文件中,引用了一个*.css:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href='https://my.site.com/assets/css/style.css' rel='stylesheet' type='text/css'>
</head>在该*.css文件中,引用了一个单独的字体;例如:
@font-face {
font-family: 'MyFontRegular';
src: url('https://www.openfont.org/assets/mail/fonts/MyFontWeb-Regular.woff') format('woff'),
url('https://www.openfont.org/assets/mail/fonts/MyFontWeb-Regular.eot') format('embedded-opentype');
}正如我说过的,我的智能手机中的chrome浏览器不显示引用的字体,因为它切断了http://或https://。当我手动将该方案添加到地址栏中时,将显示正确的样式。
如何强制我的android浏览器中的address字段中的https:// when,当它从我的android应用程序?中调用时
发布于 2017-04-24 13:45:43
可能是缓存。如果您对html站点有控制权,请将包含更改为如下所示:
<link href='https://my.site.com/assets/css/style.css?something=132545' rel='stylesheet' type='text/css'>在那之后,在电话上试试。如果缓存清除并提取新的css文件,则将该数字更改为随机生成的数字。
每次“某某”变量发生变化时,它都会加载该文件。如果不经常执行这些样式更新,则将其设置为固定数量,并在每次更新css文件时不断增加。
按照有关未加载https的字体的信息,您可以尝试重写onReceivedSslError并看到它解决了问题:
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler,
SslError error) {
handler.proceed();
}小心,这完全禁止ssl验证..。这是一条危险的路线。
https://stackoverflow.com/questions/43521768
复制相似问题