Ayumi
Ayumi
  • 发布:2018-07-06 16:17
  • 更新:2021-10-30 20:06
  • 阅读:7336

获取机器信息plus.push.getClientInfo().clientid不稳定,第一次安装获取为null

分类:HTML5+

很奇怪的问题
app打开登陆界面,用户输入用户和密码,点击登陆时,把clientid传到服务器入数据库,但第一次安装打开输入用户和密码登时,数据库获取的clientid是null,第二次以后,正常获取。
clientid = plus.push.getClientInfo().clientid;

var clientid = '';  
	$.plusReady(function() {  
		  
		//初始化获取app的clientid  
		clientid = plus.push.getClientInfo().clientid;  
		console.log('clientid:'+clientid);  
	})  
  
  
  
/**  
	 * 用户登录  
	 **/  
	owner.login = function(loginInfo, callback) {  
		callback = callback || $.noop;  
		loginInfo = loginInfo || {};  
		loginInfo.account = loginInfo.account || '';  
		loginInfo.password = loginInfo.password || '';  
		if (loginInfo.account.length == 0) {  
			return callback('账号不能为空');  
		}  
		if (loginInfo.password.length == 0) {  
			return callback('密码不能为空');  
		}  
		  
		//ayu ajax服务器验证 2018.06.07  
		$.ajax(owner.baseUrl+'login/',{  
			data:{  
				username: loginInfo.account,  
				password: loginInfo.password,  
				clientid: clientid  
			},  
			dataType:'json',//服务器返回json格式数据  
			type:'post',//HTTP请求类型  
			timeout:10000,//超时时间设置为10秒;  
			headers:{'Content-Type':'application/json'},  
			success:function(data){  
				//服务器返回响应,根据响应结果,分析是否登录成功;  
				console.log(JSON.stringify(data));  
				if(data.status==true){  
					owner.createState(loginInfo.account, callback, data.access_token, data.user_id);  
				}  
				if(data.status==false)  
				{  
					return callback(data.msg);  
				}  
				  
			},  
			error:function(xhr,type,errorThrown){  
				//异常处理;  
				console.log('error:'+type);  
				callback('服务器繁忙,请稍后再试。')  
			}  
		});  
		  
		  
	};

2018-07-06 16:17 负责人:无 分享
已邀请:
回梦無痕

回梦無痕 - 暂停服务

要延迟一点时间获取,具体延迟多长不确定。。使用以下代码即可获取

var t1 = window.setInterval(function()  
{  
    var info = plus.push.getClientInfo();  
    var cid = info.clientid;  
    if(cid)  
    {  
        console.log('cid='+cid);  
        window.clearInterval(t1);     
    }                     
},50);
  • 下一页丶翻

    没用,离线打包一直是空的.


    2018-10-29 14:28

  • 回梦無痕

    回复 下一页丶翻:大哥。楼主的提问是云打包,我当然是回复云打包的方法。。。。。离线打包我没试过获取,获取不到应该是配置不对,我基本没用过几次离线打包,要用到原生代码的APP,都是集成H5+SDK去混合开发的,混合开发时候,基本都是自己集成推送,没有用过H5+的推送。


    2018-10-29 14:52

  • 百倍

    要稍微调整下

    var t1 = window.setInterval(function()

    {

    var info = plus.push.getClientInfo();

    var cid = info.clientid;

    if(cid!='null') //cid返回的是字符串null

    {

    console.log('cid='+cid);

    window.clearInterval(t1);

    }

    },50);


    2022-06-12 14:40

codesyofo

codesyofo

2019.09.03自定义基座还存在这个问题,按钮点击获取不到,要等一段时间后再点击可获取

DCloud_Android_DQQ

DCloud_Android_DQQ

这个方法获取cid是同步获取的。
但是真实的获取cid 是一个去个推服务器获取的异步操作。
所以第一次安装大概率失败。

解决办法有两个

1 改成异步获取
2 如楼上所说,延迟一会获取。

  • 5***@qq.com

    获取到的这个id是永久不变的吗


    2022-04-11 04:36

黄大大1

黄大大1 - 测试账号

改成进页面就先获取 不要等处罚登录才获取

该问题目前已经被锁定, 无法添加新回复