我的phonegap hack(1)打开外部链接

 

phonegap 虽然已经到了 1.6.1,可以说还有很多不完善的地方,无论是功能数量上,还是功能使用上,总觉得不顺手,好在它的东家好,将来的陆续改进会越来越好,然而在当下,还是要想出一定的办法来处理燃眉之急。

最近就遇到一个不大不小的难题:开发的“本地”应用,在打开非本地链接时,就会由浏览器打开,这还得了?让用户跳来跳去不说,更让人觉得是两张皮的拼凑品。

在网上搜了许久,有说重写覆盖webView和WebViewClient的,有说设置打开方式的,转来转去就这3篇文章:
PhoneGap android loadUrl远程URL
PhoneGap – 在程序内打开网页链接
phonegap中http链接自动调用本地浏览器解决办法
我不明白我的配置环境与作者差异太大,还是作者自己压根就没有试过,根据理论想法拍脑袋写出的纸代码,总之无法解决问题。只好自己动手想办法解决。

在加载本地/远程文件的时候,有了个很有意思的发现:加载的远程路径时,如果在域名后面出现/,则打开里面的链接时会以新浏览器方式打开,反之就会在当前应用中加载,哪怕你使用的标签中含有 target=”_blank”。

由此可以得知,通过加载“本地”应用file:///android_asset/www/index.html,你无论如何也不可能避免/,所以在新浏览器打开是必然的。

我本人一直是个js + as + php程序员,对于java也是一知半解,从未进行过android原生开发,并不了解它的深层机制,所以显得束手无策。

俗语说,不能在一棵树上吊死,多换几棵树试试。

安装web开发的思维,还居然真找到了一个hack办法!没错,就是 iframe

新增一个html或这page,插入一个 iframe标签并隐藏起来,预留到那里,专门用来加载指定的链接。

 

 

 
<a href="http://itthinker.vicp.net/readme.html" onClick="return loadingUrl(this.href)" target="_blank">外联 </a>
 
<div data-role="page" id="iframe">
<iframe src="#" id="iframeurl" width="240" height="480"></iframe>
</div>
 
<script type="text/javascript">
function loadingUrl(url)
{
   $('#iframeurl').attr('src',url);
   //$('#iframe').show();
   location.href='#iframe';
   return false;
}
</script>
 


 

测试环境: phonegap1.6.1   android 4.0.3

要想使用$就需要jquery库

http://itthinker.vicp.net/?p=1297

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值