【FAQ】API6低代码开发问题汇总
低代码开发参考文档:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide-low-code-0000001158284713
基于景区模板开发元服务:
使用API6低代码开发遇到的问题汇总情况如下:
1、低代码环境下,如何实现box-shadow阴影效果的配置?
答:低码目前不支持box-shadow设置。
2、低代码环境下,是否支持元素的宽度或者高度在设置时由内容的多少来决定?
答:低码目前无法支持wrap-content,如果内容需要撑满全屏时,可以设置宽度或者高度为100%。
3、如何实现下图中金额数不固定但是整体内容无间隙的效果?
答:Text里面放三个Span即可实现。
4、打开visual文件后界面自带的canvas效果展示和打开的预览器效果以哪个为准?
答:canvas和预览器中实际数据加载时的效果都无法展示,请以真机调试运行时的效果为准。
5、visual文件中内容组件过多(如首页)时会导致在页面编辑时严重卡顿,这种情况有何优化方案呢?
答:①、目前的DevEco版本暂无具体的优化方案,只能关掉visual文件重新打开或者重启IDE;②、或者另外创建一个项目,在该项目中编辑一部分页面布局然后复制到原有项目中。
6、AppGallery Connect低代码平台中连接器的入参有什么作用?下面的HTTP配置又是什么?
答:HTTP连接器界面中上面的入参是定义了接口所需要的所有数据,下面的HTTP配置则是把数据对应到相应的Query Header Body里面去,简单理解就是上面是定义的入参结构,下面是设置入参的对应关系,入参的数据通过对应关系填入到各个字段里面。
7、使用连接器时报错:code=208011285,msg="function execute error",如何解决?
答:
问题排查:在AGC的云函数中手动调用连接器接口,然后会报同样的错误,定位到该问题是请求接口及参数等缓存数据超出了redis的云缓存限制引发了报错。
解决方案:目前是可以先拆分一下连接器,不要将所有的接口都放在同一个连接器中,将多个接口拆分到不同的连接器中使用,尽量一个连接器中创建一个接口方法。
8、如何通过一个网页地址在页面中直接嵌入网页进行展示(类似小程序的webview)?嵌入的网页如何交互?
答:
问题1:在页面中通过Java使用WebView控件加载页面URL,在低码页面中为按钮绑定点击事件,事件中实现通过JS调用Java能力。
问题2:添加以下代码:webview.getWebConfig().setJavaScriptPermit(true); //如果网页需要使用JavaScript,添加此行
可以参考以下内容:
https://developer.huawei.com/consumer/cn/forum/topic/0208121373041025092?fid=0102683795438680754
9、WebView中进行路由跳转时会打开浏览器然后在网页中打开要跳转的页面,如何让需要跳转的页面直接在WebView中展示?
答:可以通过设置自定义的WebAgent实现,代码如下:
10、WebView加载H5页面跳转二级页面后,无法播放语音如何解决?
答:通过排查WebView的相关配置,发现未调用setWebStoragePermit()方法,该方法用于开启H5 DOM存储,代码如下:
11、如何给别的手机安装测试版本?
答:可以通过发布开放性测试的方式,开放式测试的使用详情请参考官方文档:
12、WebView页面加载H5如何实现拨打电话、定位及导航的相关功能?
答:实现以上功能的核心知识点是:JS跟Java的数据交互,关于上述功能的详细代码,请参考以下帖子:
https://developer.huawei.com/consumer/cn/forum/topic/0209122138104231108?fid=0101591351254000314
13、元服务中数据模型和连接器的数据加载较慢,通过数据打点发现加载时间较长,请问该如何优化?
答:通过定位发现端侧SDK版本为旧版本,因此在端侧修改lowcode sdk的版本号为1.5.0.301版本,另外连接器里面方法拆分到多个连接器,避免一个连接器方法过多,尽量一个连接器中只有一个方法。
14、景区模板的数据模型是否有可直接导入的文件?
答:目前没有可导入的文件,需要手动创建。
15、H5页面中如何判断当前H5运行环境是在HarmonyOS的WebView中?
答:通过JS调用Java代码的方式获取一个标识,如果标识存在且等于定义的值,则判断是鸿蒙系统,否则不是。
16、WebView中通过Java获取到当前位置后,需要怎么返回给H5?
答:H5页面的JS方法中添加两个参数function locationToApp(e,str),然后Java中onCallback方法的return后面跟上定位信息,js方法里的result就是Java返回的结果。在Java拿到定位信息后,写一个Java调JS的方法,然后JS方法中再去刷新一下页面。
17、Java获取到的位置在高德地图上显示的位置有偏差,请问Java获取到的坐标系是什么坐标系?
答:鸿蒙中Java获取定位得到的经纬度坐标系是WGS84坐标系,需要进行坐标转换。
18、提交开放性测试的新版本提审,并且也有更新代码中的版本号,审核通过之后在手机中看到的版本号是新版本号,内容依旧是旧版本,是什么原因呢?
答:开发者修改的是versionName字段,端侧是通过版本号versionCode来检测升级的,已经告知开发者端侧开发一般修改versionName的时候,versionCode也要同步修改的。
19、JS的本地存储如何实现,是否有可用的api?
答:本地存储可以参考轻量级数据存储开发指导,参考文档地址如下:
20、低码中Image组件如何设置圆角?
答:本地测试通过直接给图片设置border-radius可以显示圆角,但是开发者那边设置之后反馈无效,最后建议在外层容器设置radius属性解决。
21、连接器生成的返回参数数组,在项目引用的时候多了一层该怎么办?
答:这个问题需要在js文件中的data节点中重新定义正确的返参的数据结构,把多的对象那一层去除,针对该问题可以参考以下文章:https://blog.51cto.com/u_15687416/6571324
22、端侧自动生成代码爆红:Type {} is missing the following properties,如何解决?
答:该问题不影响运行效果,是TS的数据类型校验。
23、数据模型切换发布态之后,数据不能同步过去吗?
答:目前是无法同步的,草稿态相当于是为开发人员提供的一个测试环境,在该环境下进行调测,数据可以随意增删,发布态相当于是生产环境数据,草稿态和发布态的数据是隔离的,因此无法同步。
24、使用连接器返回数据报错:ReferenceError:getRet is not defined,如何解决?
答:检查MyApplication.java类中是否缺失以下代码:AGConnectInstance.initialize(this);如缺失需要添加这行初始化的代码。