如果我将包含HTML的字符串加载到UIWebView中,并且该字符串包含相对于该字符串的对象(超链接),即存在ID为“something”的某个对象,则链接可以正常工作 - 单击它并且Web视图跳转到引用的对象。
我想要的是导航到我项目中的不同文件,换句话说,就好像不同文件的路径是URL一样。
我发现如果href是一个URL,例如href =“http://www.amazon.com”,那么链接就可以了。
如果我在href中输入文件的名称或该名称的[NSBundle mainBundle] pathForResource:],则该链接不起作用。
是否有某种方法可以生成指向项目中HTML文件的URL的等价物,以便可以链接到该HTML文件?
答案 0 :(得分:1)
我在这个链接找到了一个解决方案:
How to use Javascript to communicate with Objective-c code?
基本上,解决方案是实现UIWebViewDelegate协议的shouldStartLoadWithRequest方法,并“捕获”一个特定的scheme值。所以我的链接,而不是说:
<a href="http://someplace.location">
就像:
<a href="mylink://#filename.ext">
通过捕获使用方案“mylink”加载任何内容的尝试,我可以使用:
[[request URL] fragment]
令人遗憾的是,我仍无法在网页视图中跳转到片段。在链接到真实URL时,您可以说“www.foo.org#page50”之类的内容,并直接跳转到新页面上的对象的id为“page50”的任何位置。使用我的方法,我只能到页面顶部。
除非我记录文件名并自行实现,否则这也不会给我一个“回头”功能。