风云酷小子
风云酷小子
  • 发布:2015-03-28 22:33
  • 更新:2015-07-16 16:10
  • 阅读:2787

java的ArrayList转化为js的object之后,只有一层了?

分类:Native.js
mui.plusReady(function() {  
                /*wifi */  
                var net = plus.networkinfo.getCurrentType(); /*获取当前网络类型*/  
                var Context = plus.android.importClass("android.content.Context");  
                var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");  
                var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
                wifiManager.startScan();    
                    var lists = wifiManager.getScanResults();  
                                         console.log(lists);  
                     for(i in lists){  
                        console.debug(lists[i]);  
                     }  

            });

打印的lists是一个Object
但是遍历出来lists之后,里面有个东东是 JSBObject,我之前以为这里面是个object,再遍历一次,一看
JSBObject 居然是一个字符串~~肯定是从java那边过来的时候,就没有管第二层的东西了,,,(见附件)

上面的代码是获取wifi列表的~~

不过现在还得不到具体的ssid名称,快快来帮忙啊

2015-03-28 22:33 负责人:无 分享
已邀请:

最佳回复

Android_磊子

Android_磊子

您需要修改native.js代码,如下:

function test_wifi_list() {  
    var resultDiv = document.getElementById('result');  
    var net = plus.networkinfo.getCurrentType(); /*获取当前网络类型*/  
    var Context = plus.android.importClass("android.content.Context");  
    var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");  
    var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
    wifiManager.startScan();  
    var lists = wifiManager.getScanResults();  
    var ArrayList = plus.android.importClass(lists);  
    var len = lists.size();  
    console.log(len);  
    for (var i = 0; i < len; i++) {  
        var scanResult = lists.get(i);  
        var nFont = document.createElement('font');  
        var SSID = plus.android.getAttribute(scanResult, 'SSID');  
        nFont.textContent = 'SSID:' + SSID;  
        console.log(SSID);  
        resultDiv.appendChild(nFont);  
        resultDiv.appendChild(document.createElement('br'));  
    }  
}
  • Jayming1024

    哥写代码能认真一点吗?对于我们小白用户来说,少些一个符号可能要浪费十几分钟时间


    function wifi_list() {

    var resultDiv = document.getElementById('output');

    var net = plus.networkinfo.getCurrentType(); /获取当前网络类型/

    var Context = plus.android.importClass("android.content.Context");

    var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");

    var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);

    wifiManager.startScan();

    var lists = wifiManager.getScanResults();

    var ArrayList = plus.android.importClass(lists);

    var len = lists.size();

    console.log(len);


    for (var i = 0; i < len; i++ ) {  
    var scanResult = lists.get(i);
    var nFont = document.createElement('ssid');
    var SSID = plus.android.getAttribute(scanResult,'SSID');
    nFont.textContent = 'SSID:'+SSID;
    console.log(SSID);
    resultDiv.appendChild(nFont);
    resultDiv.appendChild(document.createElement('br'));
    }

    }

    2015-07-16 14:16

  • Android_磊子

    不好意思,是这句吗nFont.textContent = 'SSID:'+SSID; ‘+’这个字符有的时候会被过滤发布出来的时候;代码我都会实测之后发出来的。实在不好意思。

    2015-07-16 14:54

  • Jayming1024

    var i = 0; i < len; i++

    2015-07-16 15:34

  • Jayming1024

    这地方也少了+

    2015-07-16 15:34

  • Android_磊子

    好,改正了,多谢提示。

    2015-07-16 16:10

Android_磊子

Android_磊子

不好意思,这个地方还是需要我们查一下。

Ga

Ga - 前后端各种语言全沾工程师

谢邀,不过我的建议是能换赶紧换
如果项目进度不到无法推翻的程度还是赶紧推了吧,我是直接脱坑了
用过一个项目之后再不想用第二次了,无论是代码还是社区完成度都太低了
真想用html5目前还是phonegap靠谱
如果你是业务系统后面还有并发跨域访问部分请求随机失败的大坑呢,我也没心情看了,我直接把应该做的并发改成队列顺序请求了,恶心的可以
还有这个社区,如果不是提交过一次示例代码给加分了,我连bug都快报不出来了,说好的报BUG返分一直不给返,积分马上见底,你可以看看我发的帖子,多少BUG没反馈或者反馈缓慢,你要能看再看看我的积分,扣成什么样了,好好的活跃用户整得我真是不想用

最后强调一次,能换赶紧换

  • Android_磊子

    对于你发问的问题,我们没能及时回复,表示惭愧。为了能更好的让相关人知道你的问题,建议添加发文类型,并邀请官方人回答(邀请时使用‘DCloud_’过滤,不能找到直接相关人,也可以邀请任一官方人员),这样才能准确收到你的发问。

    2015-07-01 11:54

  • 4***@qq.com

    其实这个项目很好,就是文档简直不敢直视

    2019-01-31 16:10

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