我正在使用webview开发android应用程序,但网页在webview中加载的时间更长,有没有办法在Web视图中加载网页。
提前致谢
答案 0 :(得分:1)
Google已创建Chrome Custom Tabs,您可以使用与应用程序相同的主题样式启动原生Chrome应用程序,以使其显示为嵌入式。
除此之外,自定义标签提供了预热网页的选项,实质上是预取和预渲染网页。谷歌称,使用自定义标签页几乎可以立即打开网页。
也就是说,只有当用户点击然后启动浏览器的链接时,这才有用。如果您想要更快地加载真正的嵌入式webview,这将无济于事。
修改强>
我发现该网站上提供的示例应用程序有点过于复杂。我将在下面介绍一个简短的实现。这不支持所有可能的情况,但应该足够起点。
摇篮:
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));
}
});
}
}