uniapp 下获取cid

咨询多次客服统一给的答案都是下面这种,但其实是不对的,因为我写的是app端,app 没有 document window 之类的方法。

document.addEventListener('plusready', function(){  
    // 页面加载时触发  
    var pinf = plus.push.getClientInfo();  
    var cid = pinf.clientid;//客户端标识  
}, false );

  经过寻找在网上找到了一篇关于cid 的获取方法,亲测可用

方案一:

let pinf = plus.push.getClientInfo(); let cid = pinf && pinf.clientid || ''; //客户端标识

有可能取不到clientId,或者为‘undefined’ ‘null' 等字符串

由于可能取不到,然后使用方案二,异步获取

plus.push.getClientInfoAsync((info) => {
    cid = info.clientid;
    }, err => {
});

触发异步回调的前提条件是,需要在manifest.json 在ios下配置

"pushRegisterMode" : "manual"

当app 打开的时候会弹出权限框,如果选择了否,同样会获取不到clientID

原文地址:https://www.cnblogs.com/xieyao/p/14120194.html