快应用入坑总结

2,519 阅读4分钟

关于快应用:

特点:即点即用,原生应用体验。

以下是遇到的坑:

1、配置信息:

  • 支持的最小平台版本号(minPlatformVersion)

支持的最小平台版本号为非必填项,标识开发者的rpk包兼容支持的最小运行平台版本

当使用了1020及以上的平台版本新增特性时,就必须确保minPlatformVersion最低为该平台版本号,避免上线后在更低版本平台上运行出错

示例如下:

{
  "minPlatformVersion": 1020
}

踩到的坑:发布审核不通过,当时客服反馈用的是1000版本去测的,因为我这边没有适配1000版本,打开直接就报错了

2、input

名称类型默认值必填描述
typebutton,checkbox ,radio,text , email,date,time ,number,passwordtext不支持动态修改

踩到的坑:当时做登录的时候有一个切换显示隐藏密码的功能,这时我修改type的 password和text来做切换,安卓手机不生效,不支持。

3、CSS布局

  • 1、CSS3 @keyframes 不支持带top,bottom,left,right属性,只能用translate 支持:
@keyframes bottomIn {
    from {
        transform: translateY(1000px)
    }

    to {
        transform: translateY(0)
    }
}

不支持:

@keyframes bottomIn
{
    from {
        bottom:1000px;  
    }
    to {
        bottom:20;
    }
}
  • 2、border不支持简写 比如:
border: 1px solid #fff;

需要写成:

border-bottom-color: #dddddd;
border-style: solid;
border-bottom-width: 1px;
  • 3、不支持阴影属性
box-shadow: 10px 10px 5px #888888;

4、长度单位

(1) 仅支持px和%。

(2) px是相对于项目配置基准宽度的单位,已经适配了移动端屏幕。

(3) 设计稿1px/设计稿基准宽度 = 框架样式1px/ 项目配置基准宽度。

所有当我们拿到视觉稿的时候,视觉稿是多少像素尺寸就用多少。

5、OPPO r9m状态栏兼容问题

快应用不支持修改手机显示状态栏颜色,由于OPPO r9m手机状态栏显示是白色的,这时把快应用的titleBarBackgroundColor修改成白色的话,这款手机就不能正常显示状态栏了,如果修改成黑色,其它大部分手机也显示不正常。

6、获取授权码code

授权码是用来获取令牌accessToken和跨平台用户标识openId的(做账号关联),开始的时候我试了很多机型都拿不到这个code,返回结果fail,直到我反馈给了快应用客服,这个是需要手机厂商对接你的物联设备才行,各手机厂商对你的快应用包名上传记录。快应用才能拿到code。

7、获取clientId和clientSecret

获取accessToken和openId接口不仅需要用到授权code,还需要用到clientId和clientSecret,如果要拿到clientId和clientSecret这些参数,必须把快应用提交审核发布才行,审核发布有2次审核,第一次是快应用的的审核,第二次是个大厂商的审核,提交的应用应该是功能完善的,但是只差账号体系的,只需要通过快应用的审核即可,这时去厂商的开发平台就能找到相关的信息。

8、快应用包包体大小在1M以内,否则不能上传

1M的包体积真的很小,没办法,暂时只能按照规矩来,图片要控制好,图片是影响包体积的最大因素。

9、正式上传rpk 包签名校验失败

需要通过openssl命令等工具生成签名文件private.pem、certificate.pem,例如:

openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 3650 -out certificate.pem

在工程的sign目录下创建release目录,将私钥文件private.pem和证书文件certificate.pem拷贝进去,然后通过 npm run release 来构建正式环境的rpk。

10、导航栏

快应用没有现成的导航栏接口提供来控制menu和返回按钮,这时我们可以定制自己的导航栏, 在父组件里,子组件通过$dispatch(),完成返回事件和menu事件的触发。

11、快应用不允许提供下载原生应用的功能

页面提供了一个下载原生的途径,提交审核的时候被厂商拒绝了,因为页面存在分发选项,提供下载原生APP应用,这是不允许这样做的。

资料查询