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...替换为switchif会遍历每个判断项直到判断成立,switch使用的是二分查找,效率更高。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐