美文网首页
iOS本地html页面使用锚点定位

iOS本地html页面使用锚点定位

作者: me007 | 来源:发表于2016-09-12 23:12 被阅读555次

最近在为公司一个老项目加一个小功能,功能需求是要在登录界面上,根据登录错误提示码跳转到一个本地错误指引的html页面

首先当然是编辑该html页面增加锚点,也就id=错误码,然后在登录失败后直接路径加上"#错误码"就可以直接跳转到相应的错误码页面。

增加id=300.png

然而我在为原来的路径加上#错误码并不起作用,webview也无法加载这个页面

NSString*path = [[NSBundle mainBundle]  pathForResource:@"help"ofType:@"html"];
[path stringByAppendingString:@"#200"];

把webView的错误打印出来,才知道是路径问题。

NSURL *url = [NSURL fileURLWithPath:[self.urlString copy]];

url打印输出为:file:///Users/.../help.html%23300,“#”会被该方法编码成%23,出现找不到该文件的情况。而加载本地的文件又不适合用URLWithString:方法。
后来转念一想,可以换一种方式,path路径不做错误码的拼接,而在webViewDidFinishLoad:方法中注入调用页面的JS方法:

[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"javascript:window.location.hash=%d",self.errorCode]];

PS:改用URLWithString:方法也可以奏效。
而这两个方法的区别在于:fileURLWithPath是将str转化为文件路径。而URLWithString紧紧是将url2转化成NSURL类型,对于它的内容没有任何的改变,即不会将#编码为%23,所得到的url不同。

  • file:///Users/ey/Library/.../help.html
  • /Users/ey/Library/... /help.html

相关文章

  • iOS本地html页面使用锚点定位

    最近在为公司一个老项目加一个小功能,功能需求是要在登录界面上,根据登录错误提示码跳转到一个本地错误指引的html页...

  • 前端实现滚动到顶部的三种方式

    css, html, dom 创建测试页面 锚点方式 使用页面的锚点链接进行滚动: 直接滚动 使用 window ...

  • HTML-锚点定位

    在HTML中使用锚点连接,用户可以快速定位到目标内容。创建锚点定位分成两步:1、定义锚点连接: 2、设置连接id

  • a标签定位锚点偏移

    在页面中使用margin-top,padding-top时,使用a标签的href定位页面锚点,会出现向上偏移的情况...

  • 锱铢必较:如何在简书Markdown中使用锚点

    锚点是什么 在html语言中,锚点可以快速定位到页面元素的位置。例如下面这个链接就可以让读者直接跳到“有用的提示”...

  • 2019-07-02 overflow 与锚点定位

    overflow 与锚点定位 锚点,通俗点的解释就是可以让页面定位到某个位置的点。 基于URL 地址的锚链实现锚点...

  • vue 锚点

    在某些场景中,我们通常使用锚点,进行定位,跳转我们需要的页面 方法一a 标签的锚点跳转 如果在同一页面跳转,该方法...

  • Android 实现锚点定位

    相信做前端的都做过页面锚点定位的功能,通过 去设置页面内锚点定位跳转。本篇文章就使用tablayout、scro...

  • 使用CSS3解决锚点跳转内容被遮盖的问题.md

    使用CSS3解决因“固定定位”造成页面内锚点跳转内容被遮盖的问题

  • html 锚点三种实现方法

    在网页中经常用到锚点,特别是在比较长的页面中锚点的使用会增加用户体验,现在php中文网介绍html 锚点三种实现方...

网友评论

      本文标题:iOS本地html页面使用锚点定位

      本文链接:https://www.haomeiwen.com/subject/wyxmettx.html