HarmonyOS 数组bleList,第一次更新页面正常显示,后面再次更新页面不刷新,只显示第一次的数据
页面创建时扫描蓝牙,只有第一个能显示,后面的都不显示了。
import { ble, socket } from '@kit.ConnectivityKit';
import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
import BluetoothSocket from '../../common/bluetooth/BluetoothSocket';
import BluetoothUtil from '../../common/bluetooth/BluetoothUtil';
import BleScanManager from '../../common/bluetooth/BleScanManager';
import { abilityAccessCtrl, PermissionRequestResult } from '@kit.AbilityKit';
import { Datas } from '../../common/utils/Datas';
import Logger from '../../common/utils/Logger';
import { JSON } from '@kit.ArkTS';
/**
* 附近设备
*/
@Component
export struct VicinityLock{
atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
@State bleList:Array<ble.ScanResult> = []
bleNameArray:Array<string> = [];
build() {
//附近设备
Column(){
Row(){
Text()
.width(5)
.height(15)
.backgroundColor(Color.Green)
.borderRadius(2)
.margin({right:5})
Text('附近设备')
}.width('100%')
Column(){
this.LockList()
}
}.width('90%')
}
@Builder LockList(){
ForEach(this.bleList,(lock:ble.ScanResult) => {
Row(){
Image($r('app.media.hlzn_launcher'))
.width(70)
.height(70)
.margin({left:5})
Column({space:7}){
Row({space:95}){
Text(lock.deviceName)
Text($r('app.string.lock_on_line'))
.fontColor(Color.Green)
}
.width('100%')
.justifyContent(FlexAlign.Start)
}
.height(70)
.margin({left:20})
}
.borderColor(Color.White)
.backgroundColor(Color.White)
.width('100%')
.height(80)
.margin({bottom:5})
.borderRadius(5)
}, (lock:ble.ScanResult,index:number) => index.toString())
}
aboutToAppear(): void {
try {
let context = getContext(this);
this.atManager.requestPermissionsFromUser(context, ['ohos.permission.ACCESS_BLUETOOTH'], (err: BusinessError, data: PermissionRequestResult)=>{
console.info(`data: `+ JSON.stringify(data));
console.info(`data permissions:` + data.permissions);
console.info(`data authResults:` + data.authResults);
//开启扫描
BleScanManager.startScan();
//监听扫描结果
BleScanManager.onScanResult((bleResult:ble.ScanResult) => {
if(this.bleNameArray.indexOf(bleResult.deviceName) == -1){
this.bleList.push(bleResult);
}
this.bleNameArray.push(bleResult.deviceName)
Logger.p('bleResult===='+bleResult.deviceName)
Logger.p('bleResult===='+this.bleList.length)
});
});
} catch(err) {
console.log(`${JSON.stringify(err)}`);
}
}
}
@Extend(Text) function normal(){
.fontColor($r('app.color.text_color'))
.fontSize($r('app.float.normal_text_size'))
}
@Extend(Text) function small(){
.fontSize($r('app.float.small_text_size'))
.fontColor($r('app.color.text_color'))
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS App第一次启动,需要弹出授权隐私页面吗?
827浏览 • 1回复 待解决
如何更新页面列表数据
7545浏览 • 1回复 待解决
HarmonyOS 自定义弹窗组件,builder 函数将组件作为值,传进去,第一次显示,@prop 数据不更新
383浏览 • 1回复 待解决
HarmonyOS 应用亮度获取第一次值错误,为-1
467浏览 • 1回复 待解决
如何判断APP是否是第一次请求权限?
833浏览 • 1回复 待解决
greenplum 表第一次insert很慢有什么办法解决?
4945浏览 • 1回复 待解决
HarmonyOS 每次到当前页面都执行的方法,aboutToAppear只第一次调用
295浏览 • 1回复 待解决
HarmonyOS TextInput焦点在弹窗第一次打开时不起作用
783浏览 • 1回复 待解决
怎么在进度条更新的时候刷新页面?
5223浏览 • 1回复 待解决
HarmonyOS 第一次登录会卡输入法,会把app挤占到上方
442浏览 • 1回复 待解决
离线包 ,第一次不走缓存,第二次访问的时候怎么走webview的缓存?
726浏览 • 1回复 待解决
Marquee组件的文字滚动,第一次滚动出现大量空白,如何避免空白出现
973浏览 • 1回复 待解决
HarmonyOS 数据改变未刷新页面
1067浏览 • 0回复 待解决
如何控制web组件的pagestart和pageend仅在第一次加载url的时候触发
779浏览 • 1回复 待解决
HarmonyOS openCustomDialog 进入新页面后dialog出现在新页面
475浏览 • 1回复 待解决
NAPI层可以获取到第一次安装时间和相应app的进程吗?
1198浏览 • 1回复 待解决
第一次使用HUAWEI DevEco Device Tool,提示Windows找不到文件'javaw',救救孩子
9594浏览 • 2回复 待解决
HarmonyOS 上架失败,第一次上架beta版应用,提交审核立刻失败了
733浏览 • 1回复 待解决
HarmonyOS 如何刷新页面内容
345浏览 • 1回复 待解决
HarmonyOS 关于foreach循环更新页面数据时页面会闪烁问题
242浏览 • 1回复 待解决
HarmonyOS RSA分段加密数据数据 第一次执行加密操作出现报错401,之后执行加密方法却又都正常了
261浏览 • 1回复 待解决
HarmonyOS router跳转新页面之后使用function作为参数,想在新页面进行回调但是传参到新页面丢失
412浏览 • 1回复 待解决
HarmonyOS GIF动态图片,怎么设置只显示一次
1251浏览 • 0回复 待解决
HarmonyOS web里的userAgent,第一次进页面是能正常获取到,第二次进页面就获取不到了, webview.once('webInited'不往里面执行了
618浏览 • 1回复 待解决
#鸿蒙学习大百科#Tabs组件第一次点击切换时会卡顿和很慢,如何优化一下?
868浏览 • 1回复 待解决
可以尝试一下这样的foreach写法,示例如下: