phonegap中http链接自动调用本地浏览器解决办法

首先,个人觉得phonegap这样的设计是合理的,当你使用基于phonegap的应用程序,虽然用的是html+js,但是开发的却是本地应用了,所以在本地应用中遇到http协议的链接调用浏览器打开是合理的。

只是这种合理带来了不方便,尤其当你只用phonegap做一个壳,去浏览移动设备的网站时。使用jquerymobile可以解决这个问题,jqm会将本域内的http请求使用ajax传输,得到的结果再放入DOM中,个人推荐使用jqm的这种方式,处理灵活。

下面给一个一劳永逸的方式,网上目前我还没有搜到这种方式。

下面是类似官方的示例,其中phonegap我用的是apache的cordova

复制代码

importandroid.os.Bundle;
importorg.apache.cordova.*;
importandroid.webkit.WebView;
importandroid.webkit.WebViewClient;

public classWebViewer extendsDroidGap{
@Override
public voidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
super.loadUrl("http://demo.wanban.cc/w3g");
}
}
复制代码

在上面的基础上进行修改,将phonegap的webViewClient对象重新赋值一个新对象,并在新对象中重写shouldOverrideUrlLoading方法。

复制代码

importandroid.os.Bundle;
importorg.apache.cordova.*;
importandroid.webkit.WebView;
importandroid.webkit.WebViewClient;

public classWebViewer extendsDroidGap{
@Override
public voidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
super.loadUrl("http://demo.wanban.cc/w3g");

super.webViewClient= newWebViewClient(){
public booleanshouldOverrideUrlLoading(WebViewview,Stringurl){
view.loadUrl(url);
return true;
}
};
}
}
复制代码

你可能感兴趣的:(PhoneGap)