2月11日至3月22日工作中遇到的问题整理

741 阅读4分钟

1、uniapp老是闪退?

解决:是因为请求了一个错误的接口。

2、小程序自带的custom-tab-bar组件

(1)切换时闪

(2)在电脑端微信上显示高度特别高

解决: 判断底部高度 > 60 就为0

3、uniapp vue和nvue有什么区别?

解决:渲染引擎不同

4、uniapp nvue页面使用setStyle报错

解决:nvue不能使用setStyle方法

5、uiapp如何监听ios来电提醒?

解决:ext.dcloud.net.cn/plugin?id=6…

(1)插件下载下来

(2)manifest.json->APP原生插件配置->本地插件

(3)重打基座

// index.vue
var KJCall = uni.requireNativePlugin('KJ-Call');
//电话状态监听
KJCall.CallState(res => {
  console.log(JSON.stringify(res));
  console.log('电话唯一ID:' + res.callID);
  if (res.callState == 'Dialing') {
    console.log('拨打');
  } else if (res.callState == 'Connected') {
    console.log('电话接通');
  } else if (res.callState == 'Disconnected') {
    console.log('电话挂断');
  } else if (res.callState == 'Incoming') {
    console.log('来电');
  } else if (res.callState == 'Other') {
    console.log('电话其他状态');
  }

  uni.setStorage({
    key: 'callStateDes',
    data: res.callState,
    success: function () {
      console.log('success');
    }
  });
});

// web-view页面
plus.ios.importClass("CTCall");
plus.ios.importClass("CTCallCenter");
var callObserver = plus.ios.newObject("CTCallCenter");
callObserver.plusSetAttribute("callEventHandler", doReceive);
function doReceive(call) {					
  setTimeout(function() {
    _this.controlB.call.callStateDes = plus.storage.getItem("callStateDes")
    console.log(_this.controlB.call.callStateDes)

    if(_this.controlB.call.isOpen[0] == 1){ // 开启来电提醒
      if(_this.controlB.call.callStateDes == 'Incoming'){								
        _this.controlB.write(0x0E, [parseInt('01', 2)],function(){}) // [83,72,81,2,14,1,86,80]
      } else if(_this.controlB.call.callStateDes == 'Connected' || _this.controlB.call.callStateDes == 'Disconnected'){
        _this.controlB.write(0x0E, [parseInt('00', 2)],function(){}) 
      }
    }
  }, 2000);

}

6、小程序ios根据serviceId获取特征值失败,错误代码10004

解决:确保serviceId的字母都是大写

7、用本地的接口需要相同的局域网

8、uniapp 获取所有页面栈

let pages = getCurrentPages(); //获取所有页面栈实例列表
let nowPage = pages[ pages.length - 1]; //当前页页面实例
nowPage.$vm.getMaterial();
nowPage.$vm.status = '已完成';//修改上一个页面status的值

uniapp.dcloud.io/collocation…

9、小程序ios用scroll-view组件划到底部会划出一片空白

解决:传参数pageSize

10、蓝牙调试器里要保证数据接收和发送是hex格式

11、数据如何hex发送

FF0600FAB0B00404

12、hbuilder手机联调,显示【本应用使用Hbuilderx3.3.11或对应的cli版本编译,而手机端SDK版本是3.3.5。不匹配的版本可能造成应用异常】

解决:

(1)hbuildrx插件删除,重新添加

(2)重打自定义基座-选公共测试包

原因:Hbuilderx升级了

13、Android ble中nitify和indication的区别

blog.csdn.net/qq_33250391…

两个都是通知的意思,notify和indication的区别在于,notify只是将你要发的数据发送给手机,没有确认机制,不会保证数据发送是否到达。而indication的方式在手机收到数据时会主动回一个ack回来。即有确认机制,只有收到这个ack你才能继续发送下一个数据。这保证了数据的正确到达,也起到了流控的作用。所以在打开通知的时候,需要设置一下。

13、蓝牙数据解析成有符号位的整数

JavaScript DataView.getUint16() 是 dataView 中的一个内置方法。它用于获取指定位置的无符号 16 位整数(无符号短整型)数。

14、uniapp getcurrentPages()方法,console.log(pages[pages.length - 1])报错【uni - app - Property or method “toJSON“ is not defined on the instance but referenced during render.】

解决:Vue版本选择3

15、十进制无符号的数转换成十进制有符号位数

251转换成负数

new Int8Array([251])[0] // -5

16、

解决:Hbuilderx - 基础配置 重新获取DCloud APPID

17、能同时连接两个设备,并同时接收到设备传递的数据吗?

解决:能

18、app 上架隐私政策修改

解决:在隐私政策首尾处增加:

最近更新日期:2021年11月1日。 注:本政策将于2021年11月1日正式生效。

www.jianshu.com/p/605813edd…

19、Hbuilder如何打正式包?

解决:

(1)配置图标

(2)发行->云打包

20、调试蓝牙,得到的数据经常变化,如何找规律?

解决:把十六进制转换成二进制找规律。(有0和1的数据考虑二进制;有字母的考虑十六进制)

21、固件如何更新?

解决:将bin文件写入设备里。

22、写入命令,ios超过20字节没有回调

解决:

方法一:使发送的数据不超过20字节

方法二:判断如果是ios系统,不在写入的回调里执行下一步方法,而是在回调外延时500ms执行下一步方法。

23、uniapp的nvue页面如何引入阿里图标?报错【WARNING: content is not a standard property name (may not be supported)】(警告:content不是标准属性名(可能不受支持))

解决:

(1)App.vue引入图标线上地址

(2)定义css样式

(3)引用<text class="phoenix_icon">&#xe899;</text>

// App.vue
const domModule = uni.requireNativePlugin('dom');
domModule.addRule('fontFace', {
  'fontFamily': 'iconfont', // 不固定,根据项目来
  'src': "url('https://xxxxxxxxxxxxxx.ttf')" // 不固定,根据项目来
});
// index.nvue
<template>
	<view class="">
		<text class="iconfont">&#xe899;</text>
	</view>
</template>

<style>
.iconfont {
	font-family: iconfont;
	font-size: 60rpx;
}
</style>

24、nvue如何引入图片?

<image class="" mode="aspectFit" :src="item.deviceCategory.logo" />