看到hybird app的優越性後,決定研究一下phonegap的使用方法。
把官網上cordova2.9.1下載後,發現裏面的demo沒法直接用,總是報錯,後來發現是library包重複了,在java build path改一下,問題就解決了。
然後接下來發現cordovaWebView可以加載android assert裏的html文件,但是加載不了外網的頁面,例如百度。
而使用原生的WebView卻可以正常加載,因此懷疑是cordovaWebView在作怪。
然後進行源碼cordova2.9.0跟蹤,發現cordovaWebView裏的一處地方,如下
void loadUrlNow(String url) {
if (LOG.isLoggable(LOG.DEBUG) && !url.startsWith("javascript:")) {
LOG.d(TAG, ">>> loadUrlNow()");
}
if (url.startsWith("file://") || url.startsWith("javascript:") || Config.isUrlWhiteListed(url)) {
super.loadUrl(url);
}
}
這裏Config.isUrlWhiteListed(url),用一個網址白名單作爲判斷,繼續跟蹤Config,發現Config裏有個方法addWhiteListEntry()可以添加白名單。
核心代碼如下:
Config.init();
Config.addWhiteListEntry("http://www.baidu.com, true);
cordovaWebView.loadUrl("http://www.baidu.com");
到這裏添加了白名單之後就可以正常加載外網的網頁了。