最近在用uni-app做一个微信公众号的小项目,遇到了一些让整个开发工作变得非常不愉快的问题。闲暇时间在这里记录一下,希望遇到相同问题的开发者们能一起分享一些经验
问题一 开发过程中,jssdk 网页授权的调试问题
uniapp的开发方式是本地开启一个本地服务,对于页面的修改能直接在本地的localhost调试网址中生效。但是微信中的 jsskd 网页授权是需要绑定安全域名,然后在安全域名中进行各种开发跟调试的。这就导致了在页面中的任何微小的代码调整,都需要打包代码,然后传到服务器上才能看到效果。这就导致一个恐怖的事情发生,任何的微小的调试都需要打包。
问题一 解决方式
我进行各种尝试,最后还是没有找到啥好的解决方法,只能搭了个ftp,打包一次代码,调试一次。所以,请也要用uniapp作为技术栈进行微信公众号开发的同学优先关注这个问题。
当然,如果你能接受这么麻烦的开发方式,复杂点倒是无妨。目前我能想到的解决方案就是,下一次如果还是做这种项目,考虑还是直接用之前的网页开发去解决这个问题。
问题二 同一个页面需要通过多次重定向处理不同的业务
uni-app跟微信小程序的大部分api都是非常相似的,在微信小程序中调用一些微信的api,直接调用即可。微信中可以直接下发参数,比如微信登录所需要下发的code。但是对于公众号而言,下发code的方式却变成了url跳转的方式,先拼接好下发code的url,访问以后会通过参数中指定的url下发code。这就导致了,问题1 开发必须得在授权域名中进行.问题2 需要用同一个页面根据不同的参数去处理不同的业务
。问题3 因为uni-app是SPA应用,所以跳转过来的url携带的code参数为了不影响后续业务还需要通过跳转的方式干掉。这在我们使用公众号的时候,特别是登录那里明显会感觉页面至少是跳几次的。去登陆,下发code,然后用code换取登录凭证,然后再次登录干掉code。
总结
所以,打算用uni-app开发公众号的项目。得做好处理上面两个问题的准备。或者有更好的方式欢迎赐教。