【发布时间】:2012-10-07 12:16:01
【问题描述】:
我正在开发一个基于 Backbone.js 的 Web 应用程序,对于某些用例,该应用程序将封装在原生 iOS UIWebView 中。在 iOS 应用程序中——当我们想在 web 视图中更改页面时——我们只需在 web 视图上发起一个新请求,它会相应地加载页面。
我唯一的问题是,当为请求的 URL 定义了 Backbone 路由时,我希望 Web 视图使用 Backbone 的路由和 pushState,而不是启动一个全新的页面加载。但是,当没有任何与请求的 URL 对应的 Backbone 路由时,Web 视图应该将其作为一个全新的页面请求来处理,并使用该 URL “重新加载”页面。
现在本机应用程序使用UIWebView 的loadRequest: 方法并传递一个新的NSURLRequest,其URL 为例如“http://example.com/search”,作为参数。
现在我唯一的想法是使用UIWebView的stringByEvaluatingJavaScriptFromString:方法:
- 让 Web 视图调用一些 JS 函数,然后检查我的 Backbone 路由是否可以处理该 URL。
- 如果是,应该触发路由器回调。
- 如果不是,它应该使用 URL 发起一个新的页面请求。
任何输入?有没有解决这个问题的内置方法?
谢谢!
【问题讨论】:
标签: ios backbone.js uiwebview pushstate