2016-03-22 4 views
-1

rendering Ich entwickle Android-Anwendung mit Webview, aber Web-Seite nehmen mehr Zeit in Webview laden, gibt es eine Möglichkeit, Webseiten sehr schnell in Web-Ansicht zu laden.Wie Web-Seiten schnell in Webview in

Vielen Dank im Voraus

+0

können Sie zeigen Ihre attemp –

+1

Ja es Möglichkeiten gibt. Schnelleres Internet oder Seiten mit weniger Inhalten laden. –

+0

optimieren Sie Ihre Webseite mit weniger Inhalt und Javascripts, da Javascripes manchmal lange brauchen, um geladen zu werden. –

Antwort

1

Google hat Chrome Custom Tabs erstellt, die Sie die native Chrome-Anwendung mit dem gleichen Thema Styling wie Ihre Anwendung starten können, so dass sie eingebettet sein scheint.

Darüber hinaus bietet benutzerdefinierte Registerkarten eine Option Aufwärmen eine Webseite, im Wesentlichen Pre-fetching und Pre-Rendering der Webseite. Google behauptet, dass die Verwendung von benutzerdefinierten Tabs Webseiten fast sofort öffnen lässt.

Dies gesagt, wird dies nur helfen, wenn der Benutzer auf einen Link klickt, der dann einen Browser startet. Wenn Sie möchten, dass eine eingebettete Webansicht schneller geladen wird, hilft das nicht.

EDIT

ich die Beispielanwendung auf dieser Website zur Verfügung gestellt finde ein bisschen zu kompliziert sein. Ich werde im Folgenden eine kurze Implementierung hinzufügen. Dies unterstützt nicht alle möglichen Fälle, sollte aber als Ausgangspunkt dienen.

Gradle:

dependencies { 
    compile 'com.android.support:customtabs:23.0.0+' 
} 

Aktivität:

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