s***@163.com
s***@163.com
  • 发布:2018-10-29 19:01
  • 更新:2020-04-13 20:51
  • 阅读:1323

请问用Native.js调用java.util.base64解码时为什么获取不到字节数组

分类:Native.js
plus.io.resolveLocalFileSystemURL('_doc/', function(entry) {  

                //创建音频保存文件夹  
                entry.getDirectory('audio2', {  
                    create: true  
                }, function(entry1) {  

                            console.log("创建音频文件夹成功" + entry1);  
                             // 获得音频绝对路径  
                            var fullPath = entry.fullPath;  
                            entry1.getFile(fullPath+audioName,{create:true},function(entry2){  
                                console.log("创建音频文件成功" + entry2);  

                                if(mui.os.android){    
                                        // 读取音频  
                                        var Base64 = plus.android.importClass("java.util.Base64");  
                                        var FileOutputStream = plus.android.importClass("java.io.FileOutputStream");  
                                        try{  
                                             var out = new FileOutputStream(entry2.fullPath);  
                                             var decoder=Base64.getDecoder();  

                                             var bytes= decoder.decode(base64Str);//这里总是为null,有时候可以获取,不知道为什么  

                                                out.write(bytes);   
                                                out.close();  
                                                console.log("写入数据完成");  
                                                // 回调  
                                                callback && callback(entry2);  

                                        }catch(e){  
                                            console.log(e);  
                                        }  
                                }else if(mui.os.ios){  
                                        var NSData = plus.ios.importClass('NSData');  
                                        var nsData = new NSData();  
                                        nsData = nsData.initWithBase64EncodedStringoptions(base64Str,0);  
                                        if (nsData) {  
                                            nsData.plusCallMethod({writeToFile: fullPath,atomically:true});  
                                            plus.ios.deleteObject(nsData);  
                                        }  
                                        // 回调  
                                        callback && callback(entry);  
                                }  

                            },function(e){  
                                console.log("create file error:",e);  
                            })  

                }, function(e) {  
                    console.log('Get directory "audio" failed: ' + e.message);  
                });  

            }, function(e) {  
                console.log('Resolve "_doc/" failed: ' + e.message);  
            });  

改编自Dcloud的一个案例,我想问为什么不能获取解码后的字节;很急啊。

2018-10-29 19:01 负责人:无 分享
已邀请:
小权

小权

同问。解决了吗?

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