最近完成了一个快应用项目,在提交各个市场审核的时候,除了华为市场总是不过,其他市场(vivo/oppo/小米 等)都很快通过了审核。
最让人恼火的是,华为反馈的bug内容 我们尝试各种方法都无法复现,无法复现bug就很难定位修改。修改bug全靠猜,就这样我们提交了5次,5次都被拒绝。
我通过各种途径,终于联系到了华为快应用技术人员,得知他们有自己的快应用开发工具和应用加载器,调试的话需要使用华为的快应用加载器!
这就意味着开发一套快应用:开发工具要用两个,调试器也得两个。一个是快应用联盟的,一个是华为的。
我的代码在联盟和华为中的差异
华为和联盟的差异其实并不大,个人感觉华为对代码编写的规范要求更严格。
我的项目出现差异的地方:
1、样式问题:华为样式会乱。
比如: 一个div我写了它的width ,没有写height。这样写在联盟里样式没问题 ,在华为里就乱了。
2、事件的方法差异 (这是我审核不通过的主要原因,取不到方法应用就会崩溃)
//触摸div 调用的方法
showTouch(e) {
console.log(e);
e.touches[0].pageX //获取坐标x (华为支持 、 联盟支持)
e._touches[0].pageX //获取坐标x (华为不支持、联盟支持)
},
我在 “联盟的开发工具” 中 console.log(e)输出的日志如下图:
我用了 华为不支持的方法 e._touches[0].pageX ,造成应用崩溃。
最后想说的话
快应用的初衷,不就是各大安卓厂商联盟,统一标准,一次开发一套代码,即可以上架所有市场嘛!
然而华为却搞特殊,在联盟外有自己开发工具、自己的调试引擎。 有的朋友说,华为可能嫌别人实现的效果不好要自己搞。不管怎么说,我相信,如果要华为要和联盟统一标准,在技术上肯定没有问题的。如果真的是华为瞧不起联盟的效果,希望华为可以跟联盟沟通,说服其他市场制定你想要的标准。此事给我的感觉,联盟成员内部并不能和睦相处。这可能也是快应用迟迟发展不起来的一部分原因吧(相比微信小程序)。----自己的拙见