首先activity使用了以下的接口。据说可以加快启动的速度。
public class MainActivity extends Activity implements CordovaInterface,
OnClickListener
实现了CordovaInterface,对于以下代码段要修改为this,不然老是报莫名其妙的空指针。public Activity getActivity() {
// TODO Auto-generated method stub
return this;//默认这里是null
}
这里的话初始化SharedPerferences我把主页保存起来,方便以后开发调试和修改。
private void initIndex() {
sharedPreferencesUtil = new SharedPreferencesUtil(this);
sharedPreferencesUtil.open("week_report");
String temp = sharedPreferencesUtil.getData("indexPage");
if (temp == null || temp.equals("")) {
indexPage = preset;
sharedPreferencesUtil.setData("indexPage", preset);
} else {
indexPage = temp;
}
}
接下来就初始化webview相关,以备下面的装载。
private void initWebView() {
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webView.getSettings().setSupportZoom(true);//支持缩放
webView.getSettings().setBuiltInZoomControls(true);//可以缩放控制
Config.init();//init配置文件
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
if (progress == 100) {
progressBar.setVisibility(View.GONE);
} else {
if (progressBar.getVisibility() == View.GONE) {
progressBar.setVisibility(View.VISIBLE);
}
progressBar.setProgress(progress);
}
}
@Override
public void onReceivedTitle(WebView view, String title) {
// TODO Auto-generated method stub
super.onReceivedTitle(view, title);
tvTitle.setText(title);
}
});
Config.addWhiteListEntry("*", true);//给phonegap的webview增加白名单,不然外网的网址访问不了。
webView.loadUrl(indexPage);//加载url网址
}
记得销毁相关phonegap的webview。
public void onDestroy() {
super.onDestroy();
if (webView != null) {
// Send destroy event to JavaScript
webView.handleDestroy();
}
}
最后附上可以设置主页的hybird app的界面。
ps:有什么错误的地方请大牛们指正一下。