找回密码
 立即注册
搜索

开发问题 快应用技术问题答疑【第一期】

6
回复
1918
查看
[复制链接]

466

主题

761

帖子

6460

积分

 楼主| 2023-2-3 12:27:41 显示全部楼层 |阅读模式

1. 新手入门相关问题

1.1 本地调试

1.1.1 web组件能怎样渲染项目的.html本地资源文件?

答:Web组件常用于显示在线的 html 页面,目前并不支持直接渲染本地静态的.html文件,由于各厂商系统 webview 已不再支持非安全域的 web 定位请求,请求的url一般是以 HTTPS开头。

 

1.2 打包编译

1.2.1 rpk包是1.5M是分包好,还是不分包好?两者对拉起速度有没有影响?

答:目前快应用上传发布的rpk包体积有以下限制:

普通包(rpk):不超过2M;

分包(rpks):

整个快应用的所有分包大小不超过 20M;

单个分包/基础包大小不能超过 2M。

 

当快应用体积较大时,建议使用快应用的分包加载功能。

简单来说,就是将项目中的所有页面及资源通过配置规则划分到多个单独的分包文件中,运行时单独下载,加快页面渲染。对快应用进行分包,可以优化快应用首次启动的加载时间,以及更好的管理和解耦各个模块功能。分包有利于提高速度,详情可参考文档:https://doc.quickapp.cn/framework/subpackage.html?h=分包

 

2. 开发框架常见问题

2.1 页面样式与布局

2.1.1 快应用首页灰色模式有没有比较好的方法,是否需要设置两套样式?

答:目前快应用官方文档对页面设置“灰色模式”提供了两种实现的方式,具体可参考如下:

方式一:可直接使用应用配置接口configuration.setGrayMode 方法对页面进行设置灰色模式;详情可参考:

https://doc.quickapp.cn/features/system/configuration.html#configuration.setGrayMode(OBJECT

示例参考如下:

data: {

    regular: '12/13',

    temporary: '2022/12/10',

    excludedPages: '/Interface_PageMeta1100/garyMode',

  },

 

configuration.setGrayMode({

      enable: true,  // 开启灰色模式;

      duration: {

        regular: regular, // 每年固定生效日期;

        temporary: temporary, // 临时固定生效日期;

      },

      excludedPages: excludedPages, // 禁用灰色模式的页面列表;

    })

方式二:可在manifest.json配置对grayMode 属性进行配置,详情可参考:

https://doc.quickapp.cn/framework/manifest.html?h=grayMode

示例参考如下:

"config": {

    "grayMode": {

      "enable": true,

      "duration": {

        "regular": [

          "12/13",

          "09/18"

        ],

        "temporary": [

          "2022/04/04",

          "2022/05/12"

        ]

      },

      "excludedPages": [

        "/WelcomePage"

      ]

    }

  }

 

2.1.2元素溢出的部分自动隐藏了,怎么显示?

答:可以尝试一下溢出元素外层使用stack组件进行包裹,同时设置一下padding,图片相对于外层stack做定位。

2.2 manifest

2.2.1 可以给单独的组件设置状态栏背景色吗?

答:目前快应用官方文档对“标题栏”背景色的设置提供了两种实现的方式,具体可参考如下:

方式一:设置当前页面的标题栏可通过页面方法this.$page.setTitleBar 单独设置,详情可参考:https://doc.quickapp.cn/framework/script.html

示例参考如下:

this.$page.setTitleBar({backgroundColor:'#eb3941',})

 

方式二:可在manifest.json配置对statusBarBackgroundColor属性进行配置,详情可参考:

https://doc.quickapp.cn/framework/manifest.html?h=statusBarBackgroundColor

 

2.2.2用户点击左上角进行分享和加桌的行为数据我这边可以拿到吗?

答:目前没法直接获取到数据。

2.2.3请问怎么在二级页面隐藏胶囊位,请问是需要在后台开通什么权限么?

答:目前是不支持隐藏呢;现阶段如需隐藏,快应用需要满足日活、次均使用时常、新增用户加桌和桌面留存、广告曝光时间间隔、用户负反馈等维度的要求,具体要求可咨询平台运营。

 

2.3 生命周期

2.3.1 快应用中怎么判定已经滑过一个屏幕的高度?

方式一:可借助onPageScroll生命周期钩子来监听页面滚动距离做判断;

方式二:可通过监听list组件scroll事件,累加scrollY的值来做判断页面的滚动距离。

2.4 开发框架-其他

2.4.1快应用和快应用(webview)区别?

答:底层运行环境不同。快应用webview 指的应该是类似小程序一样,渲染是用安卓webview控件来渲染的。快应用的话底层是用安卓原生组件进行渲染的,性能方面会更加优越。

   

3. 接口

3.1 系统能力

3.1.1 想问下怎么获取用户的快应用版本?

A、如果获取快应用引擎(平台)版本,可以通过快应用官方提供的device接口来获取快应用的版本信息,详情可参考:https://doc.quickapp.cn/features/system/device.html?h=设备信息

B、如果获取某个快应用版本是指定义在manifest.json 文件中的versionName字段,可通过app.getInfo来获取;详情可参考:https://doc.quickapp.cn/features/system/app.html

3.1.2如何获取快应用的启动来源?

答:app.getInfo()获取启动来源,根据type来源类型判断,url可以区分,但是deeplink允许自定义启动来源type不一定是deeplink;

详情可参考https://doc.quickapp.cn/features/system/app.html?h=app.getInfo

3.1.3 快应用接入微信支付,接入过程中提示微信签名不对

答:微信支付 签名方面 有两个注意点:

1.微信开放平台的 MD5签名 ,这个直接用快应用IDE :工具-》由证书生成MD5-》弹窗中的MD5值 复制到开放平台中 就可以。

2.menifest.json 文件中 sign  是比较容易理解错误的地方, menifest.json 文件里,填写的是 证书公钥文件(certificate.pem)的文本内容(去掉首***,中间空格删除  最后就是一行长字符串)。

3.1.4 请问快应用的fetch请求有并行限制么?

答:请求次数是有限制的,目前一次性发60个请求之后才会被限制。

3.2 其他

3.2.1 有没有网址能查询各大厂商线上支持的最新 platformVersion

参考:https://mp.weixin.qq.com/s/uQWFPLF6jjxHs432SGuBdA

3.2.2 微信小程序转快应用,有别的方法获取到设备标识吗?

华为转快应用已经通过qa.getId(Object object)支持设备唯一标识,但是第三方应用(如微信小程序、uniapp)通过工具直接转换生成的快应用,目前快应用官方暂没有进行提供支持。

 

4. 广告

4.1 用信息流广告做摇一摇功能 想知道如何触发点击?

答:目前我们厂商快应用非开屏广告是没有该能力的支持,这应该是属于第三方厂商广告。

4.2 退弹广告出了一次就没再弹出,是否广告没加载好?

答:这应该是接入测试广告本身存在的问题,测试广告影响不大,正式广告不会只出一次,目前没有这个限制。

4.3 目前发现线上很多广告报1003内部错误,具体原因是什么?

联盟真实的错误码要看错误信息中的real errorCode:具体是什么,不然我们厂商这边也没法定位到具体的问题点,还需开发这边具体提供广告错误类型。

 

 

5、组件

5.1 H5点击组件这API能跳转吗,还是必须点击button 按钮?

H5点击组件为平台提供给开发者的跳转容器,组件样式完全由开发者指定,开发者只需要关注组件的dom和style,按规则放进组件内,并放置在网页合适位置,用户即可点击该组件跳转至快应用。无需开发者再手动绑定点击事件。详情可参考:https://doc.quickapp.cn/tutorial/platform/jump-component.html?h=h5

 

5.2 快应用picker 日期选择器,选中后显示的月份比选择的月份少一个月,为什么?

在日期选择器 滚动选择器选择值后确定时触发的change事件默认获取到的月份会比选择的月份少一个月,可尝试对获取到的月份进行+1操作。

 

官方客服微信:kuaiyingyongguanKF
官方QQ群2:1012199894
回复

使用道具 举报

0

主题

7

帖子

35

积分

2023-2-15 17:36:30 显示全部楼层
快应用点击事件里面 没有内置 $event 来获取点击的元素吗? 怎么官方文档 什么都没有说明 头大呀
回复

使用道具 举报

0

主题

7

帖子

35

积分

2023-2-15 17:44:31 显示全部楼层
还有一般点击按钮改变样式,在android、ios都是在点击事件里拿到按钮,然后动态改变样式, 我发现快应用前端里面是通过点击事件,改变一个变量,然后通过判断这个变量是否给元素追加样式来达到这种效果; 不同的思路,这种区别居然官网都没提,真的是, 官网文档 太缺乏醍醐灌顶式的经验总结文章;遇到问题什么都搜不到,感觉比vue和小程序差太远了,太浪费时间了,能不能总结一套思路,和全一点的文档,我当时自学小程序一周就搞定了,就一套思路,剩下的就是关注业务层,快应用设计者没有大牛吗?
回复

使用道具 举报

0

主题

6

帖子

30

积分

2023-2-16 10:48:18 显示全部楼层

<text @click="handleClick">123</text>

<text @click="handleClick()">123</text>

handleClick($event) {     

    console.log('e', $event); 

// 想要带额外参数 

<text @click="handleClick(1)">123</text>

handleClick(num, $event) {     

    console.log('num', num, ' e:', $event); 

}

回复

使用道具 举报

0

主题

6

帖子

30

积分

2023-2-16 10:55:36 显示全部楼层

1

回复

使用道具 举报

0

主题

7

帖子

35

积分

2023-2-21 16:10:22 显示全部楼层
伍六七 发表于 2023-2-16 10:48 <text @click="handleClick">123</text><text @click="handleClick()">123</text>handleClick($event) { & ...
我就是这样写的,vue里面就是这样,快应用里面拿不到, 快应用里面是$evt
回复

使用道具 举报

9

主题

13

帖子

110

积分

2023-3-3 16:52:22 显示全部楼层
快应用是否有类似vue中v-cloak的功能 目前出现加载页面时存在事件差导致闪动
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册