Dof*_*f3n 5 html5 android google-maps cordova
背景: 在Android上运行的Cordova phonegap 2.2应用程序允许收听后退按钮事件
document.addEventListener("backbutton", function(e){ history.back();}
Run Code Online (Sandbox Code Playgroud)
谷歌地图api V3创建地图,其中谷歌徽标链接到左下角的谷歌地图网页和右下角的可点击许可链接.徽标或服务条款链接没有特定的ID /选择器.
问题 当点击其中一个链接时,网页会被重定向到带有:target:_blank的Google网页,然后该网站会在与Cordava应用程序相同的窗口中打开,但后退按钮功能会丢失,因为该网页包含自己的Javascript.
是否可以在加载网页时注入一些代码?
一种解决方案可能是在外部打开链接:
navigator.app.loadUrl([href here], { openExternal:true } );
Run Code Online (Sandbox Code Playgroud)
但是又一次仍然存在缺乏选择者的问题.
更新:在许可页面或Google地图中单击按钮时,我在logcat中收到以下错误消息:11-13 16:20:30.500:E/Web控制台(31508):未捕获的ReferenceError:未定义cordova:1
这是与谷歌地图链接相交的一种方法。
假设您有可用的 jquery,您可以在脚本中包含此方法:
function directUrlToExternalBrowser(urlPattern) {
var pattern = "a[href^='"+urlPattern+"']";//all urls startting with urlPattern
$(pattern).live('click', function(e){
e.preventDefault();
navigator.app.loadUrl($(pattern).attr("href"), {openExternal: true});
});
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过以下行将点击定向到phonegap api:
directUrlToExternalBrowser("http://maps.google.com/maps");
directUrlToExternalBrowser("http://www.google.com/intl");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2993 次 |
| 最近记录: |