起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: mrf

[结贴] Model.prototype.modelLoad 代码不执行是什么原因

[复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-9-15 15:00:49 | 显示全部楼层
在看法环境下读卡信息没有什么意思?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

10

主题

42

帖子

90

积分

初级会员

Rank: 2

积分
90
QQ
 楼主| 发表于 2017-9-16 19:20:39 | 显示全部楼层
压根就没有执行,是在我另外一个网页有我测试时写入的imsi码,我说怎么时有时无!因为在主页加载的时候,那几个一同给加载了,那里面我把imsi码直接写进去调用action。学习都要经过这种痛苦,忍过去的就学会了,没有忍过去的就放弃了,但是我相信迟早我会把它搞懂的!
回复 支持 反对

使用道具 举报

10

主题

42

帖子

90

积分

初级会员

Rank: 2

积分
90
QQ
 楼主| 发表于 2017-9-16 21:08:22 | 显示全部楼层
mrf 发表于 2017-9-15 11:06
这是全部的js代码,看问题在哪里:
define(function(require){
        var $ = require("jquery");

Model.prototype.modelLoad = function(event){
    var imsi="abc123";
      document.addEventListener("deviceready", androidOnDeviceReady, false);
          function androidOnDeviceReady()
        {
                window.plugins.sim.getSimInfo(androidSuccessCallback, errorCallback);
        }
       function androidSuccessCallback(result)
           {       
                        //国际移动用户识别码
                        imsi=result.subscriberId;
                        return imsi;
                               
       }
     alert("国际移动用户识别码:" + imsi);       
怎么都不执行啊!?什么原因了?
回复 支持 反对

使用道具 举报

10

主题

42

帖子

90

积分

初级会员

Rank: 2

积分
90
QQ
 楼主| 发表于 2017-9-17 10:09:07 | 显示全部楼层
jishuang 发表于 2017-9-14 17:57
确认具体什么情况下不能

就是在APP一打开通过modelLoad去读取手机卡的imsi码,我通过buttonClick完全可以获取我所想要imsi码。但是想让APP一打开就自动去读取,具体如下代码:
Model.prototype.modelLoad = function(event){
var imsi="abc123";
      document.addEventListener("deviceready", androidOnDeviceReady, false);
          function androidOnDeviceReady()
        {
                window.plugins.sim.getSimInfo(androidSuccessCallback, errorCallback);
        }
       function androidSuccessCallback(result)
           {       
                        //国际移动用户识别码
                        imsi=result.subscriberId;       
       }
        function errorCallback(err)
           {
             alert(err);
           }
     alert("国际移动用户识别码:" + imsi);
}imsi每次显示出来都是开始给赋得值="abc123",是不是modelLoad 根本就执行不了cordova插件?
回复 支持 反对

使用道具 举报

10

主题

42

帖子

90

积分

初级会员

Rank: 2

积分
90
QQ
 楼主| 发表于 2017-9-18 09:14:26 | 显示全部楼层
这个问题的正确解决办法是直接在function里面执行就好了,不要试图获取function执行的数据。因为 function androidSuccessCallback(result)
           {        
                        imsi=result.subscriberId;
                        return imsi;        
       }
一般的var aaa=androidSuccessCallback();可以获取到,但是这个这种方式获取不到。
为什么了result.subscriberId;与result这个参数有关系!所以如果放在 function里面去执行完全没有问题!对于初学者来说要写出这么复杂的数据获取方式,有困难!不知WEBX5的技术们可能有新的写法,我思前想后没有想出来,最后放在里面执行解决了这个问题!
可以结帖了!
回复 支持 反对

使用道具 举报

10

主题

42

帖子

90

积分

初级会员

Rank: 2

积分
90
QQ
 楼主| 发表于 2018-5-23 11:15:56 | 显示全部楼层
if (window.plugins && window.plugins.sim) {
                                window.plugins.sim.getSimInfo(androidSuccessCallback, errorCallback);
                        } else {
                                justep.Util.hint("您好:SIM插件未能正确引入!", {
                                        delay : 1500
                                });
                        }
                }
                var errorCallback = function(evt) {
                        console.table(evt)
                };
代码加入这个就完善了!
系统好了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-20 19:54 , Processed in 0.050836 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表