Java 在安卓系统中加载AMP(加速移动页面)网页时,我们是否需要更改普通网页加载器中的任何内容?
这是我的代码:Java 在安卓系统中加载AMP(加速移动页面)网页时,我们是否需要更改普通网页加载器中的任何内容?,java,php,android,html,amp-html,Java,Php,Android,Html,Amp Html,这是我的代码: 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.on
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网页。它的负荷像一个普通的网页
此代码是否需要任何更改。最重要的是启用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);
。。。
WebSettings webViewSettings=webView.getSettings();
//重要提示:启用javascript
webViewSettings.setJavaScriptEnabled(true);
webViewSettings.setCacheMode(WebSettings.LOAD_默认值);
//启用3P Cookie(通过缓存加载AMP页面时很重要)
CookieManager CookieManager=CookieManager.getInstance();
如果(Build.VERSION.SDK\u INT>=Build.VERSION\u code.LOLLIPOP
&&!cookieManager.acceptCookie()){
cookieManager.setAcceptThirdPartyCookies(mWebView,true);
}
//启用本地存储
webViewSettings.setDomStorageEnabled(
webViewSettings.setDatabaseEnabled(
如果(Build.VERSION.SDK_INT)
webViewSettings.setDatabasePath(“/data/data/”+mActivity.getPackageName()+“/”);
}
//将推荐人设置为你的应用程序
Map extraHeaders=newhashmap();
extraHeaders.put(“Referer”,
Intent.URI_ANDROID_APP_SCHEME+“/”+context.getPackageName());
loadUrl(url,extraHeader);
最后,您可以通过AMP缓存加载AMP页面,该缓存在加载AMP页面时执行其他优化(请参阅如何构建URL)
请注意:缓存将只加载有效的安培数