我正在开发一个基于 Backbone.js 的 Web 应用程序,对于某些用例,它将被包装在原生 iOS UIWebView 中。在 iOS 应用程序中——当我们想要在 web 视图中更改页面时——我们只需在 web 视图上发起一个新请求,该请求会相应地加载页面。
我唯一的问题是,当为请求的 URL 定义了 Backbone 路由时,我希望 Web 视图使用 Backbone 的路由,pushState
而不是启动一个全新的页面加载。但是,当没有任何与请求的 URL 对应的 Backbone 路由时,Web 视图应该将其作为一个全新的页面请求来处理,并使用该 URL “重新加载”页面。
现在,本机应用程序使用UIWebView
'sloadRequest:
方法并传递一个新的NSURLRequest
,其 URL 为例如“http://example.com/search”,作为参数。
现在我唯一的想法是使用UIWebView
'sstringByEvaluatingJavaScriptFromString:
方法:
- 让 web 视图调用一些 JS 函数,该函数反过来会检查我的 Backbone 路由是否可以处理该 URL。
- 如果是,它应该触发路由器回调。
- 如果不是,它应该使用 URL 发起一个新的页面请求。
有输入吗?有没有解决这个问题的内置方法?
谢谢!