2016-03-22 12 views
-1

webviewを使用してAndroidアプリケーションを開発していますが、WebページがWebviewに読み込む時間が長くなっています。事前にandroidのWebviewでWebページを速くレンダリングする方法

おかげ

+0

は、あなたのattempを表示することができます –

+1

はい方法があります。より高速なインターネットを利用したり、少ないページでページを読み込んだりすることができます。 –

+0

JavaScriptが読み込まれるまでに時間がかかることがあるので、コンテンツとJavaScriptを少なくしてWebページを最適化します。 –

答えて

1

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)); 
      } 
     }); 
    } 
} 
関連する問題