webviewを使用してAndroidアプリケーションを開発していますが、WebページがWebviewに読み込む時間が長くなっています。事前にandroidのWebviewでWebページを速くレンダリングする方法
おかげ
webviewを使用してAndroidアプリケーションを開発していますが、WebページがWebviewに読み込む時間が長くなっています。事前にandroidのWebviewでWebページを速くレンダリングする方法
おかげ
Googleはそれが埋め込まれて表示されるようにあなたは、あなたのアプリケーションと同じテーマのスタイリングでネイティブクロームアプリケーションを起動することを可能にするChrome Custom Tabsを作成しました。
さらに、カスタムタブでは、Webページをプリフェッチしてプレレンダリングするためのオプションが用意されています(ウォームアップ)。 Googleは、カスタムタブを使用すると、ウェブページをほぼ即座に開くことができると主張しています。
これは、ユーザーがブラウザを起動したリンクをクリックした場合にのみ役立ちます。本当の埋め込みWebviewをより速くロードしたい場合、これは役に立ちません。私はそのサイト上で提供されるサンプルアプリケーションは少し複雑すぎることがわかり
EDIT
。私は以下の短い実装を含むでしょう。これはすべての可能なケースをサポートするわけではありませんが、出発点として十分であるはずです。
のGradle:
dependencies {
compile 'com.android.support:customtabs:23.0.0+'
}
活動:
public class MainActivity extends AppCompatActivity {
public static final String CUSTOM_TAB_PACKAGE_NAME = "com.android.chrome";
CustomTabsClient mClient;
CustomTabsSession mCustomTabsSession;
CustomTabsServiceConnection mCustomTabsServiceConnection;
CustomTabsIntent customTabsIntent;
static final String URL = "https://www.google.co.za/search?q=test";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
/*
Setup Chrome Custom Tabs
*/
mCustomTabsServiceConnection = new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(ComponentName componentName, CustomTabsClient customTabsClient) {
//Pre-warming
mClient = customTabsClient;
mClient.warmup(0L);
//Initialize a session as soon as possible.
mCustomTabsSession = mClient.newSession(null);
}
@Override
public void onServiceDisconnected(ComponentName name) {
mClient = null;
}
};
CustomTabsClient.bindCustomTabsService(MainActivity.this, CUSTOM_TAB_PACKAGE_NAME, mCustomTabsServiceConnection);
customTabsIntent = new CustomTabsIntent.Builder(mCustomTabsSession)
.setToolbarColor(ContextCompat.getColor(this, R.color.colorPrimary))
.setShowTitle(true)
.build();
/*
End custom tabs setup
*/
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Launch Chrome Custom Tabs on click
customTabsIntent.launchUrl(MainActivity.this, Uri.parse(URL));
}
});
}
}
は、あなたのattempを表示することができます –
はい方法があります。より高速なインターネットを利用したり、少ないページでページを読み込んだりすることができます。 –
JavaScriptが読み込まれるまでに時間がかかることがあるので、コンテンツとJavaScriptを少なくしてWebページを最適化します。 –