OpenHarmony Watch应用开发遇到的问题
·
1、不支持new一个有返回值的函数
var Fun = function () {
function Fun() {
console.info("this is a Constructor");
}
return Fun; // 有返回值
}
var fun = new Fun(); // 不支持
应改成
function Fun() {
console.info("This is a Constructor");
}
var fun = new Fun();
2、不支持class
class CarManageBean { // 不支持
constructor() {
this.type = "";
}
log() {
console.info('car log')
}
}
应改成
function CarManageBean() {
this.type = "";
}
CarManageBean.prototype.log = function() {
console.info('car log')
}
3、getApp()只能当app.js中定义了data时使用
// app.js
export default {
// data: {}
onCreate() {},
onDestory() {},
fun() {}
}
// example.js
var fun = getApp().fun; // error:没有定义data时不能通过getApp()访问app.js中的任何元素
应改成
// app.js
export default {
data: {}, // 必须加data,可以是空的,但是必须有
onCreate() {},
onDestory() {},
fun() {}
}
// example.js
var fun = getApp().fun; // ok
4、不支持直接从@ohos.watchConnect.d.ts中导出WATCH_CONNECT_CODE,要自定义所有的错误码
// const.js
const WATCH_CONNECT_CODE = {
PING_WATCH_APP_NOT_EXIST: 200, // 手表应用未安装。
PING_WATCH_APP_NOT_RUNNING: 201, // 手表应用已安装未启动。
PING_WATCH_APP_EXIST_RUNNING: 202, // 手表应用已安装已启动。
PING_OTHER: 203, // 其他错误。
PING_PHONE_APP_NOT_EXIST: 204, //手机应用未安装。
PING_PHONE_APP_NOT_RUNNING: 205, // 手机应用已安装。
SEND_FAIL: 206, // 发送消息失败。
SEND_SUCCESS: 207, // 发送消息成功。
CHECK_WATCH_APP_INSTALLED: 208, // 检查安装成功。
RESERVED_CODE: 209, // 离线消息预留。
INVALID_ARGUMENT: 210, // 参数错误。
LOCAL_VERSION_TOO_LOW: 211, // 手表WatchConnectKit版本太低。
PEER_VERSION_TOO_LOW: 212 // 对端WatchConnectKit版本太低。
}
export {
WATCH_CONNECT_CODE
}
// page.js
import { WATCH_CONNECT_CODE } from 'path/to/const'
5、不支持typeof查看数据类型
if (typeof data == 'object') { // 不支持
...
}
else if (typeof data == 'string') { // 不支持
...
}
应改成
function getType(value) {
return Object.prototype.toString.call(value).slice(8, -1);
}
if (getType(data) == 'object') {
...
}
else if (getType(data) == 'string') {
...
}
6、当手表页面负载过高时,开发收消息不能分发给应用,需要降负载。
降负载的方法:
①当前页面的图片元素过多时,尝试将show改为if,无论show是否为true都会创建这个图片,false时只是不显示,同样会增加负载。而if只有为true时才会创建,false就会销毁。
②将多个if...else if...else if...替换为switch,if会遍历每个判断项直到判断成立,switch使用的是二分查找,效率更高。
更多推荐
所有评论(0)