我们有个运行 5 年的 app ,有个核心业务就是考试,考试的题干和选项会有富文本,富文本 ios 端是之前同事用 swiftsoup 实现的,碰到音视频加载一张图片,然后点击图片跳转,本来这个业务一直稳定在线上,最近客户提出了个新需求,要求点击外链跳转。安卓的同事用 private fun richText(tv: RichMediaTextView?, title: String) {
if (title.contains("<a") || title.contains("<img") || title.contains("<video")) {
if (handle == null) {
handle = ExamHandler()
handle?.setUrlOnClickListener(object : ExamHandler.UrlOnClickListener {
override fun urlOnClick(url: String) {
val split = url.split("@")
if (StringUtils.isSupportVideo(split[0]) || StringUtils.isSupportAuido(split[0])) {
go2Player(split)
} else {
ARouter.getInstance().build(Const.PATH.ACTIVITY_BASE_BUSINESS_WEB)
.withString("url", url)
.navigation()
}
}
})
}
val content: CharSequence =
Html.fromHtml(title, GlideHtmlImageGetter(mContext, tv), null)
tv?.setText(content, handle!!, URLSpan::class.java)
} else {
val content: CharSequence = Html.fromHtml(title)
tv?.setText(content)
}
}轻易就实现了,我这边本来原生控件是 label,后面改成了 textView,利用 func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {也实现了,但是因为后台用户是自由输入的,如果一旦用了 https://www.baidu.com/https://image.baidu.com/ 那我怎么也加载不了这俩链接,除了这些,我们还有其他视频播放的时候互动答题也是类似的业务,还要考虑横屏,竖屏幕。之前的业务非常乱,感觉一改就是个深坑,还有老的高度不精确的问题,本来承认这个功能做不了可能只交个过失单就行,弄出来线上 bug 就是大问题了。感觉这也不是什么大事,但是这三天就是心情不佳,烦闷反胃。
举报· 207 次点击
登录 注册 站外分享
1 条回复  
ltyj2003 小成 3 天前
反馈需求不合理。
返回顶部