public abstract class BaseWebActivity extends BaseActivity {
protected AgentWeb mAgentWeb;
/*================== 生命周期绑定 ==================*/
@Override
protected void onPause() {
if (mAgentWeb != null) {
mAgentWeb.getWebLifeCycle().onPause();
}
super.onPause();
}
@Override
protected void onResume() {
if (mAgentWeb != null) {
mAgentWeb.getWebLifeCycle().onResume();
}
super.onResume();
}
@Override
protected void onDestroy() {
if (mAgentWeb != null) {
mAgentWeb.getWebLifeCycle().onDestroy();
}
super.onDestroy();
}
/*================== 初始化配置webView ==================*/
protected void createWebViewProxy() {
mAgentWeb = AgentWeb.with(this)
.setAgentWebParent(setWebViewParent(), new ViewGroup.LayoutParams(-1, -1))
.closeIndicator()
.setWebViewClient(initWebViewClient())
.setWebChromeClient(initWebChromeClient())
.setWebView(createWebView())
.setSecurityType(AgentWeb.SecurityType.STRICT_CHECK) //严格模式 Android 4.2.2 以下会放弃注入对象 ,使用AgentWebView没影响。
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)//打开其他应用时,弹窗咨询用户是否前往其他应用
.interceptUnkownUrl() //拦截找不到相关页面的Url AgentWeb 3.0.0 加入。
.createAgentWeb()
.ready()
.go(null);
}
protected WebView createWebView() {
WebView webView = new WebView(getApplicationContext());
// 设置背景颜色 透明
webView.setBackgroundColor(Color.argb(0, 0, 0, 0));
// 初始化setting
initWebSettings(webView.getSettings());
// 设置本地调用对象及其接口
Object javaScriptObject = initJavaScriptObject();
if (javaScriptObject != null) {
webView.addJavascriptInterface(initJavaScriptObject(), initJavaScriptName());
}
return webView;
}
protected abstract ViewGroup setWebViewParent();
/**
* js与Android交互名
*/
protected String initJavaScriptName() {
return "android";
}
/**
* js交互对象
*/
protected Object initJavaScriptObject() {
return null;
}
/**
* 初始化WebSettings
*/
protected void initWebSettings(WebSettings settings) {
settings.setDefaultTextEncodingName("utf-8");
//支持jsadb
settings.setJavaScriptEnabled(true);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
// 设置可以支持缩放
settings.setSupportZoom(true);
//扩大比例的缩放
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
}
/**
* 初始化WebChromeClient
*/
protected WebChromeClient initWebChromeClient() {
return new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
}
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
}
};
}
/**
* 初始化WebViewClient
*/
protected WebViewClient initWebViewClient() {
return new WebViewClient() {
boolean isLoadUrl = false;
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (!isLoadUrl) {
isLoadUrl = true;
view.loadUrl(url);
}
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
webClearHistory();
}
};
}
web
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- org.springframework.beans.factory.UnsatisfiedDependencyEx...
- 1.wap网站是用手机访问,web网站是用电脑访问; 2.wap网站,即WAP(Wireless Applicat...
- 离约定时间还有两小时,我担心早到,受不了在路边等人,便选择了较慢的交通工具,至少在车上还能帮我打发点时间。 苏州的...