15

W mojej aplikacji, pokażę zewnętrzną stronę HTML albo w CustomTabsIntent lub w WebView:Android przeglądarka tnie https: // program z kompletnym eliminacjach

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"))); 

Ale styl tej HTML jest już zaktualizowany, ale mój smartfon pokazuje stary styl (stare czcionki itp.).

W pliku * .html istnieje * .css odwoływać:

<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> 

I w tym pliku * .css, nie jest osobą fizyczną czcionki odwołuje; np .:

@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'); 
} 

Jak powiedziałem, przeglądarka Chrome w moim smartfonie nie pokazuje odwołuje czcionek, ponieważ przecina http: // lub https: // off. Po ręcznym dodaniu tego schematu do paska adresu wyświetlany jest odpowiedni styl.

Jak mogę wymusić schemat https: // w polu adresu w mojej przeglądarce Android, kiedy został wywołany z mojej aplikacji na Androida?

+1

OK Dowiedziałem się, że powinien to być https://some.where.com/site.html. Przeglądarka jest otwierana za pomocą some.where.com/site.html (bez https: //). Kiedy dodaję ręcznie "https: //" w pasku adresu, działa idealnie –

+0

Czy możesz wysłać kod do swojej implementacji WebView? Jeśli tego właśnie używasz? – Destry

Odpowiedz

2

Może to być pamięć podręczna. Jeśli masz kontrolę nad stroną html, zmień jej na taką, jak:

<link href='https://my.site.com/assets/css/style.css?something=132545' rel='stylesheet' type='text/css'> 

Po tym, spróbuj w telefonie. Jeśli pamięć podręczna wyczyści i wyciągnie nowy plik css, zmień liczbę na losowo wygenerowaną liczbę.

Załaduje plik za każdym razem, gdy zmieni się zmienna "coś". Jeśli aktualizacje te są wykonywane niezbyt często, należy ustawić je jako stałe i stale zwiększać je za każdym razem, gdy aktualizujesz plik css.

Po informacje na temat czcionek nie są ładowane z https, można spróbować zastąpić onReceivedSslError i zobaczyć go rozwiązuje problem:

@Override 
    public void onReceivedSslError(WebView view, SslErrorHandler handler, 
      SslError error) { 
     handler.proceed(); 
    } 

Uważaj, ten całkowicie wyłącza Validation SSL ... it' jest niebezpieczną trasą.

+0

To nie jest problem z pamięcią podręczną. –

+0

Czy próbowałeś wyłączyć wyłączanie funkcji ssl zgodnie z sugestią? –

Powiązane problemy