我们是普通的企业开发,给集团下属开发办公软件的 用的 cordova+vue。你在企业证书+混合框架下有很多为所欲为的事情 比如连 code-push 都不需要 直接把模块代码准备好放到 html 里加载就行,甚至还可以弄出点花样 比如说每个子公司有自己的标题和 login 背景,这些也就是改个 url 的问题,当然考虑到 login 背景的高清图有点大,我们会第一次把这个图下到手机存储里下次用缓存。
问题开始在 ios 更新 11.3 有用户反应有时会出现无法点击的问题 经过调试 我们发现是 IOS 唤醒 app 后 所有的 vue click 事件全丢了,没办法,作为最基本的前端调试还要进行的,打 debug 版,上 safari 调试,结果断点只要走一行调试器连 app 全崩了,这就是高贵的 osx 带来的开发体验,真的 safari 的垃圾调试器照着 chrome 不知道差了几个 edge。
有人会说为什么不用 touch 事件,这个主要是考虑到在电脑上调试的时候触发的都是 click,在考虑到插件的支持,我想很少会绑 touch,一般都是 click+fastclick/hammer.js 的解决吧。
第一反应就是去 cordova 找更新,结果 cordova-ios 没更新,升级 vue,换 fastclick,各种方式无果,没办法,只能换 webview 了,冒着插件不兼容的风险换了 cordova 提供的 wkwebview,第一件事就是所有的接口全跨域了,这在以前 UIWebView 里是不敢想的,然后所有 file://的图片也无法显示。用 xhr 插件解决一部分,紧急用 nginx 给所有的接口加上对*的访问允许,把以前的 login 高清图改成低清图,直接走网络不缓存了,勉强这一关撑过去了。
结果这几天,又有同样的问题出现了,比上次好一点的是只有 header 部分的 click 事件丢了,主体部分 click 没丢而且手势是正常的。没办法,只能继续升级,看 ionic 魔改了一个 cordova 的 wkwebview,前几天还在更新,没办法,换,用起来不错,准备上线,突然测试报了个大 bug,这个 webview 在 4g 下会卡 splash-screen,更魔幻的是在卡的时候看调试工具后台的 dom 渲染和 js 运行全是正常的,相当于 webview 的 display=none,简直不要太魔幻。
幸运的是用在 cordova wkwebview 的 xhr 插件在 ionic wkwebview 的也有一个,凭着直觉换上去,先解决了再说。
我想这就是很多所谓全栈的现状吧,忙着升级组件,用错误信息去搜有没有现成的解决方案,而真到了要自己去改 obj-c 层代码的时候,没几个人搞的定,还是要靠公司的 ios 专门开发去解决,或者干脆不管去等其他的解决方案,到了这个时候才知道什么叫无助。
问题开始在 ios 更新 11.3 有用户反应有时会出现无法点击的问题 经过调试 我们发现是 IOS 唤醒 app 后 所有的 vue click 事件全丢了,没办法,作为最基本的前端调试还要进行的,打 debug 版,上 safari 调试,结果断点只要走一行调试器连 app 全崩了,这就是高贵的 osx 带来的开发体验,真的 safari 的垃圾调试器照着 chrome 不知道差了几个 edge。
有人会说为什么不用 touch 事件,这个主要是考虑到在电脑上调试的时候触发的都是 click,在考虑到插件的支持,我想很少会绑 touch,一般都是 click+fastclick/hammer.js 的解决吧。
第一反应就是去 cordova 找更新,结果 cordova-ios 没更新,升级 vue,换 fastclick,各种方式无果,没办法,只能换 webview 了,冒着插件不兼容的风险换了 cordova 提供的 wkwebview,第一件事就是所有的接口全跨域了,这在以前 UIWebView 里是不敢想的,然后所有 file://的图片也无法显示。用 xhr 插件解决一部分,紧急用 nginx 给所有的接口加上对*的访问允许,把以前的 login 高清图改成低清图,直接走网络不缓存了,勉强这一关撑过去了。
结果这几天,又有同样的问题出现了,比上次好一点的是只有 header 部分的 click 事件丢了,主体部分 click 没丢而且手势是正常的。没办法,只能继续升级,看 ionic 魔改了一个 cordova 的 wkwebview,前几天还在更新,没办法,换,用起来不错,准备上线,突然测试报了个大 bug,这个 webview 在 4g 下会卡 splash-screen,更魔幻的是在卡的时候看调试工具后台的 dom 渲染和 js 运行全是正常的,相当于 webview 的 display=none,简直不要太魔幻。
幸运的是用在 cordova wkwebview 的 xhr 插件在 ionic wkwebview 的也有一个,凭着直觉换上去,先解决了再说。
我想这就是很多所谓全栈的现状吧,忙着升级组件,用错误信息去搜有没有现成的解决方案,而真到了要自己去改 obj-c 层代码的时候,没几个人搞的定,还是要靠公司的 ios 专门开发去解决,或者干脆不管去等其他的解决方案,到了这个时候才知道什么叫无助。