phonegap使用的初步研究(一)cordovaWebView不能加載外網的頁面

看到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");


到這裏添加了白名單之後就可以正常加載外網的網頁了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章