开放数据域

数据的保存和读取

const test_score = {
    /**必须有的字段 */
    wxgame: {
        score: 992,
        /**时间戳 */
        update_time: "1683191353",
    },
    // 其他自定义字段
    other_key: "test",
    rank: 29,
};

// 该方法可以主域调用
wx.setUserCloudStorage({
    // 此处必须是array;  key-value的形式
    KVDataList: [{ key: "test_score", value: JSON.stringify(test_score) }],
    success: res => {
        console.log("suc", res);
    },
    fail: e => {
        console.log("fail", e);
    },
    complete: () => {
        console.log("complete");
    },
});
// 该方法仅存在于开放域中
wx.getUserCloudStorage({
    keyList: ["test_score"],
    success: res => {
        console.log("suc", res);
    },
    fail: () => {
        console.log("fail");
    },
    complete: () => {
        console.log("complete");
    },
});

渲染代码咋写

  • 背景一定要用游戏的,dot 的 scrollview 底层不能有东西

  • scroll_item 可以加图片

  • 按钮逻辑也要用游戏的

主域给子域传递数据

子域上的监听

wx.onMessage(res => {
    if (!(res && res.type === "engine")) {
        console.log("do something...");
    }
});

主域上的发送;

  • 传了两次;

  • 第二次才是下面的 postMessage

let env = window.wx || window.tt || window.swan;
if (env) {
    console.log("Message posted");
    const message = {
        value: "MESSAGE FROM MAIN PROJECT",
    };
    /**message
     * 要发送的消息,message 中及嵌套对象中 key 的 value 只能是 primitive value。即 number、* string、boolean、null、undefined。*/
    env.getOpenDataContext().postMessage(message);
}

关于好友列表等数据

  • 区分 group/friend/protential 等

  • 都需要授权

  • 权限接口调用时

    • 未授权或已拒绝的,自动弹窗询问,同意后才可以调用

    • 如果用户已授权,可以直接调用接口;

    • 如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口 fail 回调。

  • 好友信息授权,scope.WxFriendInteraction