本文的公众号包括了微信、支付宝两家公众号。适配包括Android和iOS。
首先是各自浏览器的内核,稍不注意就是坑。可以用代码检测一下内核以做适配。比如iOS系统支付宝和微信的浏览器内核貌似都是Safair(过了很久不太确定了,可以百度一下代码自己测一下内核);而Android系统支付宝的是UI浏览器,微信的是QQ浏览器。所以两个系统的浏览器加载方式也不同:Android的是进度条加载,所以有一些控制是可以体现出来的(诸如第二界面的网络加载不通会在第一界面体现);而iOS是跳转没有进度条(或者说进度条很快),空白页加载数据,所以出现一些问题的时候用户体验不是很好(网络不通的时候就是空白页)。这就需要代码来控制,该关闭的关闭,该重新连接的要重连接。
把内核放在最上面说,是因为写代码的时候要记得适配,测试两个系统出现问题也别慌,很正常的一件事。判断下内核系统if else分两块写就ok。
两个公众号都有自己的SDK,阿里的是AlipayJSBridge,腾讯的是WeixinJSBridge。我们的项目是要求在两个公众号上实现一模一样的界面,类似于同一个app的Android端和iOS端的开发,所以我们的思路是两个的非功能界面使用一个,复杂功能需要调用各自SDK的就建两个界面。其实就是低耦合。。。
在同界面的部分,比如下面代码的需求是按返回关闭浏览器,经测试百度到的所有js代码是没有效果的(可能专业的前端开发工程师有办法吧),这里只能通过判断平台分别调用SDK关闭浏览器。这个控制后退也耗费了我不少时间,这里记录一下以便下次用。
后退关闭代码我们是发布到云服务器远程过去直接用txt改的代码,所以说有的面试让你手写代码也是有场景的,因为你点不出来啊>.<。什么,代码冲突怎么办?首先云服务器会开多个账户登录的,这个东西没有锁,别人改了之后可能会提示让你更新一下(我们用notepad++),但是!有可能会出现两个人都改了,系统两边都不会保存,恢复原来,而且这个恢复是两个人都下线之后。所以最好是常备份一下你的代码。什么,为什么要这么写代码?两个周从开发到测试到上线,我也想砍了我们老板,不懂技术还提出这么个要求。没办法呀,紧急你不做出来老板挣不到钱你也没什么好果子吃,加班做的。编译看效果的话直接进微信和支付宝公众号看就行了,项目发布到云上了,直接就可以看、改了。(不推荐这种方式,只适应于开发者极少的情况下)
代码什么的和前端基本一样,其实就是个网页,只是一些涉及到手机功能的需要用到SDK罢了。诸如调用摄像头、获取经纬度、网络数据接收什么的。再按照两家公众号的UI方式设计一下图片和颜色搭配,基本就没什么问题了。对移动端开发工程师来说做小程序公众号的逻辑控制没什么问题,就是语言。我们还没怎么用框架纯生写的,UI用了框架因为没什么时间去写css了。
有个对我来说是个坑的地方就是:location.href = hrefUrl;后面必须是https://标准开头的,否则会认为是项目包下的地址。我们当时用了转义字符,如果把开头也转义的话,是跳转不过去的。(微信公众号要求是https的链接,所以http的就不说了)
我们的公众号里面加了代扣部分,为了提高用户的体验性,也都是参数协议之类的,沟通配置的时候比较麻烦,搞出来的时候就是跳转就好了。
总体来说公众号开发真的不难,做好可能就是细节的问题,产品细节、技术细节及外观细节。
网友评论