iOS 端容器之 WKWebView 那些事( 六 )
问题是UIWebView与WKWebView在对前端viewport-fit支持表现上略有差别:UIWebView对viewport-fit支持度较好 , 表现基本与官方文档表述一致 。但是WKWebView中存在一个潜规则 , 如果Web页面内body的高度 , 在没有超出WKWebView组件实际高度时 , viewport-fit=cover可能不生效 。
处理办法是在页面中规避掉此类情况 , 如配置bodyheight为100vh(或其它类似方案) 。
4WebContent进程崩溃问题
这是一个出现概率不高 , 但是缺乏通用、有效解决办法的问题 。我们知道WKWebView多进程模式下 , 如果WebContent进程因为各种原因出现Crash , 则WKWebView会通过webViewWebContentProcessDidTerminate回调告诉开发者 , 一般情况下我们会通过reload方法重新加载页面 。同时如果用户设备内存紧张 , 则可能出现系统主动KILLWebContent进程的情况 。即可能出现App进程(前台)正常 , 但是WebContent崩溃、页面重新加载的情况 。
绝大部分情况 , 进入此流程并不一定会对用户操作造成困扰 。但是 , 如果此时造成内存紧张是因为前端触发业务导致 , 典型如表单中唤起相机上传图片 , 此流程对用户的影响可能是致命的 。即使我们通过WebViewreload使页面恢复 , 用户在执行的上传动作也会被打断 , 导致提交流程出现异常、影响用户的操作 。且如果用户设备进入此状态 , 大部分情况下用户再次操作还会触发同样的流程 。
这种情况下 , 用户无法及时感知到造成问题的根本原因 , 绝大多数直观反应即为:“App出现bug了!”故从用户角度来看 , 缺少自动恢复、处理问题的办法 。
目前此问题缺乏有效、统一解决办法 , 一种解决思路是客户端与前端配置 , 针对核心、可能出现异常的流程 , 定向设计解决方案 。通过端侧的能力来将数据持久化 , 在类似异常发生之后使用持久化数据恢复现场 , 尽量在用户无感的情况下保证用户操作流程正常 。
【iOS 端容器之 WKWebView 那些事】以上便是我们在端容器设计开发过程中 , WKWebView使用上遇到的一些典型问题和对应的解决办法 。总的来说 , 目前造成这么不协调的状态 , 大部分是因为系统平台未能充分考虑开发者诉求、组件设计对历史业务兼容性不佳导致的 。当然 , 现在这种状态必然也不是一种合理状态 , 未来无论是系统平台方、还是业务方、或者是开发者 , 当矛盾无法协调时总有一方要进行妥协 。在这个时间点来临之前 , 希望上面总结内容 , 能够为受此类问题困扰的同学提供一些帮助 。
- 换电品牌直达C端 宁德时代不甘于“幕后”|立方快评
- “才子佳人”起争端,孰是孰非怎么断?
- Garmin epix 高端商务智能腕表、fēnix 7太阳能系列户外手表上市
- 精灵魔塔数据互不互通(精灵魔塔ios安卓互通问题说明)
- 星之彼端米娅三种形态怎么换(星之彼端米娅三种形态切换方式分享)
- 摸金校尉之九幽将军安卓和苹果互通吗(摸金校尉之九幽将军安卓与ios数据互通问题讲解)
- 卡萨帝电视为用户带来哪些高端体验?
- 金种子馥合香 次高端白酒赛道的徽酒选手
- 我国古代传统风俗会在端午节时饮什么酒(蚂蚁庄园6月14日答案最新汇总)
- 灵魂宝戒端午粽子怎么玩(灵魂宝戒端午粽子boss打法心得分享)
