帖子
帖子
用户
博客
课程
显示全部楼层
6
帖子
0
勋章
45
Y币

[插件开发] 极光模块设备id获取问题

[复制链接]
发表于 2015-5-26 11:02:40
本帖最后由 我是新人 于 2015-5-26 17:18 编辑

        //加载极光推送模块
        var ajpush = api.require('ajpush');
        //模块初始化,android生效,ios会自动初始化
        ajpush.init(function(ret) {
            if (ret && ret.status){
                console.log("极光推送注册成功");
            }
        });         
       //获取注册信息
       ajpush.getRegistrationId(function(ret){
            console.log("极光ID为:" + ret.id);
            if(ret.id){
                //缓存设备id
                fun.user.setToken(ret.id);
                var param = {alias:ret.id};
                //绑定用户别名为极光id。服务端可以指定别名进行消息推送
                ajpush.bindAliasAndTags(param,function(ret) {
                        var statusCode = ret.statusCode;
                        console.log("注册信息:" + JSON.stringify(ret));
                });
            }
        });
以上代码在app第一次启动的时候无法获取设备id
测试包在第二次启动之后可以获取
但是正式包一直无法获取设备id
这两个问题严重影响用户体验
包括后面采用延迟2秒获取注册信息在测试环境上是可以实现第一次app启动获取id,但是正是环境都无法实现
请官方给与协助!

6
帖子
0
勋章
45
Y币
补充一下,测试环境就是云编译的测试包,正式环境同理正式包
6
帖子
0
勋章
45
Y币
正式包获取不到id的问题找到了.原因是极光推送后台需要新建一个应用,此应用对应的android包名要和云端打包正式包的包名一致,同时修改config.xml里极光模块的appKey即可.
但是我获取极光id还是得延迟获取.这个bug还是依然存在的
20
帖子
1
勋章
7575
Y币
请在初始化成功后调用,也就是在init的回调中,判断是否成功,成功才能获取。init是异步的,根据你的代码,在getRegistrationId时,init不一定完成了。
6
帖子
0
勋章
45
Y币
常山赵子云 发表于 2015-5-26 17:39
请在初始化成功后调用,也就是在init的回调中,判断是否成功,成功才能获取。init是异步的,根据你的代码, ...

init只有在android设备生效.ios会自动初始化.
您需要登录后才可以回帖 登录

本版积分规则