美文网首页
iOS中的坑:URL不识别##

iOS中的坑:URL不识别##

作者: 康小曹 | 来源:发表于2020-10-21 10:03 被阅读0次

坑:
iOS 中对字符串进行 parser 成 URL 时,2个及以上的 # 会解析为空,如图:

image

图上URL前面部分完全相同,只是后面 # 个数不同;

一般而言,问题不大,因为 string 解析成 nil 的 URL,常见的问题是不跳转、网页不加载等。

但是如果遇到系统内部调用 LSAppLink 的情况,就会出现崩溃。

场景:
富文本中设置 Link 的 URL 包含上述情况时,点击(长按) Link 会进行 URL 的跳转,此时因为 String.length 不为空,最后进入到了 LSAppLink 的调用流程。估计系统内部没有对 URL 是否为 nil 进行判断,最后崩溃:


image

解决方案为,text 相关类中,添加 URLInteract 相关的代理方法,在里面进行判断,比如用 textView 展示富文本时的结局方案如下:

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange {
    NSLog(@"url:%@",URL);
    if (URL.absoluteString.length) {
        return YES;
    }
    return NO;
}

相关文章

网友评论

      本文标题:iOS中的坑:URL不识别##

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