这是我的代码:
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class Main extends Activity {
private WebView mWebview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebview = new WebView(this);
mWebview.loadUrl("https://ampbyexample.com/");
setContentView(mWebview);
}
}
但是,它并没有像往常那样快速加载AMP网页。它像普通的网页一样加载。
此代码是否需要更改。
答案 0 :(得分:0)
最重要的是启用javascript - AMP运行时需要javascript才能运行。但是,您可以采取更多措施来改进Android上的网页浏览中的AMP页面加载:
...
WebSettings webViewSettings = webView.getSettings();
// Important: enable javascript
webViewSettings.setJavaScriptEnabled(true);
webViewSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
// enable 3P cookies (important when loading AMP pages via a cache)
CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
&& !cookieManager.acceptCookie()) {
cookieManager.setAcceptThirdPartyCookies(mWebView, true);
}
// enable local storage
webViewSettings.setDomStorageEnabled(
webViewSettings.setDatabaseEnabled(
if (Build.VERSION.SDK_INT <
webViewSettings.setDatabasePath("/data/data/" + mActivity.getPackageName() + "/");
}
// set the referrer to your app
Map<String, String> extraHeaders = new HashMap<>();
extraHeaders.put("Referer",
Intent.URI_ANDROID_APP_SCHEME + "//" + context.getPackageName());
webView.loadUrl(url, extraHeaders);
最后,您可以通过AMP缓存加载AMP页面,在加载AMP页面时执行其他优化(请参阅this article了解如何构建URL)。
请注意:缓存只会加载有效的AMP。