组件 问题:H5页面中video标签的src使用RTSP链接,使用web组件跳转到H5页面,视频播放不成功; 回答:开发者使用RTSP链接,需要将RTSP进行转码;参考链接:https://juejin.im/post/5d183a71f265da1b6e65b8ff;
问题:使用web组件让快应用和网页通信,不能进行双向通信; 回答:web组件没有填写 trustedurl 属性,trustedurl 是个正则数组;如果快应用是和Vue页面进行通信,必须加上 trustedurl 属性;
问题:如果获取 web 组件加载网页的url地址; 回答:可以在 pagestart / pagefinish 事件中获取;
问题:使用自定义组件,导入编译时报错; 回答:请检查自定义组件中是否有报错,可能是自定义组件中代码有报错引发该问题;
问题:设置自定义字体icon-font未生效; 回答:检查自定义字体名字是否正确,引用的字体路径是否正确;
问题:给动图设置圆角不生效; 回答:快应用动图暂不支持border-radius;可以在每个图片上面设置一个透明的遮罩层,遮罩层的大小是图片的大小,给透明的遮罩层设置圆角;
问题:通过windowWidth和windowHeight获取屏幕宽度/高度:1080/1854;实际的宽高:750/1287; 回答:所有的宽度是以750px为基准;通过计算获取高度750/1080 = X(高度)/1854;
问题:进入快应用白屏; 回答:检查ELEMENT面板是否有DOM结构,如果有DOM结构,可尝试在页面的顶级元素上加上flex:1;或者检查页面中的方法名和private中的属性名是否有重复;如果是小程序转快应用,目前小米还不支持小程序转的快应用,所以会出现白屏;
问题:快应用页面超过一屏,但是页面不滚动; 回答:只有根元素和 list 组件可以出现滚动条;
问题:快应用 web 组件跳转网页的时候,提示“您访问的网站使用的证书已过期或无效”; 回答:在1060+版本支持可以在 manifest.json中 配置 trustedSslDomains 属性:可信的 https 站点列表,如:"www.quickapp.cn"。当 web 组件在访问这些站点出现证书过期或无效时,会提供继续访问的选项,允许用户继续访问;trustedSslDomains 的属性值是一个数组,不支持正则;
问题:在事件中给private中定义的数据赋值,数据成功赋值,但是页面中展示的数据没有改变; 回答: ①是在某个接口的成功回调中给private中的数据赋值,注意this的指向; ②是给数组中的某个对象的一个属性赋值,如果是通过等号的方式直接赋值,这种方式页面是感受不到数据发生变化的,可以使用 $set 的方式;
问题:快应用调试报错,报错信息如下: 回答:使用 list 组件,type类型相同但是DOM结构不同导致;
问题:canvas 绘制图片,拖动图片,图片会重复绘制; 回答:在拖动图片之前,画布没有清除干净;
接口
问题:屏幕亮度 brightness接口,获取的亮度超过255,是什么原因? 回答:开发者获取亮度之前要先设置屏幕亮度,设置的值要在0-255之间,否则是从系统里获取的屏幕亮度,可能会超过255;
问题:使用file.writeText()写文本到文件,进入失败回调,错误信息为:file does not exists; 回答:检查参数 uri 地址是否正确,地址规范详情见 文件组织 文档;如果uri地址没问题,检查是否填写了 append 参数并且true,如果有 append 参数且为true,但是文件不存在,写文本到文件,就会报 file does not exists,去掉这个参数,文件不存在会自动创建新的文件;
问题:使用download接口下载文件,下载的文件打不开; 回答:调用接口的时候,填写上filename参数;问题:pickImage获取图片展示,并存储图片地址到storage中,退出快应用重新进入,获取storage中存储的图片地址展示,图片没有展示;回答:image组件中的src地址有正确的图片地址;pickImage 获取的图片路径是一个临时路径,每次都不一样,所以保存后重新进入再取是没有用的;
问题:接入小米广告,手动关闭广告后,又会自动弹出广告; 回答:在onload中写rewardedVideoAd.show(),关闭视频的广告之后还会执行onload事件;
问题:接入小米广告,进入失败回调,code:1002; 回答:广告位 id 错误;
问题:使用fetch接口请求时遇到的问题; 回答: ①注意填写参数的规范,如果填写的responseType,注意 data 与 Content-Type 关系; ②fetch接口获取到的数据包含中文,显示的中文汉字是乱码时,把网页的文本格式由 GBK 改为 UTF-8; ③fetch获取数据,获取失败返回 code:200,检查是否是服务端域名问题;
问题:使用小米push推送时容易遇到的问题; 回答: ①小米推送接入流程:联盟注册->关联小米->联盟审核通过后,进小米开放平台->点击管理控制台->应用服务->消息推送→进入选择要开启推送服务的应用;
②如果使用的是REST API推送,必须使用v2接口;
③如果推送失败,返回code:20301,检查服务端接口参数/接口等是否配置正确,regid是否正确;
④预览版不支持推送,用预览版获取到的regid格式是错误的;
⑤发送通知栏消息时,一定要有桌面图标
⑥若要点击通知栏消息打开快应用指定页面,在服务端需要配置.extra(HYBRID_PATH, "/Detail?x=aaa&y=bbb"),传参的时候把参数encode下;跳转的页面一定要在manifest中注册过的;
⑦push.on()是针对透传消息的,接收不到通知栏消息;
问题:第三方服务微信支付wxpay接口使用时可能遇到的问题; 回答: ①微信网页支付时,如果不用referer方式,要在manifest.json中的接口声明里配置url参数;
②微信网页支付可配置回调页面,即支付完成跳转到开发者指定页面,在MWEB_URL后拼接上redirect_url参数;
③快应用预览版仅支持微信网页支付;如果手机设备支持微信app支付,默认会选择app方式;在 getType 返回值为 APP 时,开发者将只能使用 app 方式,不能使用网页方式,建议开发者支付前先获取下支付方式;
④发起微信支付app时,注意微信支付的参数是否填写正确,参数格式是否正确,可参考微信 app 支付文档;
⑤微信支付返回错误码2001时,请检查以下内容:appid参数错误(appid不一致,如拿到安卓的appid去请求的订单,发起的是快应用客户端);签名错误(manifest.json中签名和微信平台中的签名不一致);前后端的wxid是否一致;
⑥manifest中填写的签名是sign/release/certificate.pem文件中BEGIN与END直接的内容(不包括BEGIN与END),复制过去有换行符的话去掉换行符;微信开放平台上填写的签名是MD5签名;
⑦有微信分身,微信分身暂时不支持;
问题:快应用第三方微信分享和支付接口的错误码200:一般性错误; 回答:一般性错误代表第三方问题;问题解决思路:看manifest中是否配置appSign和wxKey => 第三方分享的配置参数是否正确 => 参数格式是否正确 => 打印出错误信息data和code,根据错误信息解决问题;
问题:网页中使用appRouter的方式,不能成功唤起快应用; 回答: ①检测快应用是否上架,没有上架不能唤起;如果想唤起本地的快应用,可在手机快应用调试器中的【启动应用测试】唤起; ②通过 channelReady(callback) 方式,检测平台是否支持appRouter的方式,如果返回 false,代表平台不支持,也不能成功唤起快应用; ③如果使用的是小米手机,Android 10,看下 WMservice 版本是不是 1.0.6 及以上版本,低于这个版本也是不能成功唤起快应用的;在设置 -> 应用设置 -> 应用管理 ->搜索 Wmservice 查看版本;
框架
问题:应用进入Chrome调试报错,控制台报错信息如下; 回答:hap-toolkit版本过低导致,升级toolkit版本至0.6.10以上的版本;npm i hap-toolkit@版本号;
问题:快应用是否存在跨域问题; 回答:情况说明:Chrome浏览器其实只是手机调试器的投影,发的一些请求都是从手机端发的,真机环境下就不存在跨域的问题的,但是可能有一下图片等是网址,在Chrome上或有跨域问题;也就是说:Chrome会存在跨域问题,真机不会,用真机调试为准;
问题:快应用使用分包的大小限制是多少; 回答:分包不超过1m,所有分包合起来不超过4m;4m不是指rpks文件的大小;打包最终会生成rpks后缀的文件,文件内部包含一个整包,以及所有的分包;
问题:小米更新上架最新的快应用版本,但是打开的还是老版本的; 回答:可能是手机缓存导致,可以在快应用服务框架上清除该快应用的缓存并删除;重新打开就是最新版本了;
|