一旦我尝试在本地计算机上创建PhoneGap 2.2.0版本以及PhoneGap Build云服务,我的backbone.js路由器似乎失败了。
这意味着虽然触摸事件明显被触发,但应用程序上的任何内部链接和导航都不会起作用。
到目前为止,我的应用程序已完美运行,通过Chrome和iOS模拟器进行本地化。我可以找到很多关于jQuery Mobile和与backbone.js路由器的冲突,但我正在使用jQuery 1.8.2(我还测试了早期版本1.7.0到1.8.2)。
在Xcode控制台中,我在点击内部链接时收到错误“无法加载网页并显示错误:帧加载中断”。我在应用程序中使用'/ #link'格式作为内部链接。
我猜这可能是我设置的vanilla PhoneGap Xcode项目中的某种iOS / Xcode安全功能?但有没有我可以更改的设置允许这个?
答案 0 :(得分:0)
使用Backbone和JQM的路由器可能会更成功,因为它使用JQM事件而不是观察有变化。
答案 1 :(得分:0)
好的,我最好回答我自己的问题,因为我经过一番尝试后找到了解决方法。我现在会尽快回答,但希望稍后再回来并改进它。基本上,而不是使用标记中嵌入的标准链接,如
<a id="myLink" href="/#link">my link</a>
您需要将功能绑定到链接并使用Backbone.js路由器,如下所示:
$('#myLink').tappable(function(event){
event.preventDefault();
var url = $(this).attr('href');
application.router.navigate(url, true);
return false;
});
就我而言,我已经在使用jquery.tappable.js http://aanandprasad.com/articles/jquery-tappable/来提高我的用户界面的响应能力。
我也发现了这样做的另一个好处,就是如果你的单页网页应用程序托管在另一个网站的子文件夹中。通过强制您的应用程序使用Backbone.js路由器,您不会遇到破坏内部链接的相对路径的任何问题。
我认为我在测试期间没有遇到任何问题并且只有一次符合Phonegap的原因是因为我真的在Safari手机上测试(通过主屏幕上的书签)。一旦完成,它就在网络视图中。原生iOS开发者可能能够解释这一点。
答案 2 :(得分:0)
朋友。 我尝试使用anthor方式并且它有效。 只需删除飞溅 我的链接