q***@qq.com
q***@qq.com
  • 发布:2020-08-24 22:52
  • 更新:2023-09-25 00:51
  • 阅读:1488

【报Bug】plus.ios.invoke 回调函数参数无数据

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win1

HBuilderX类型: 正式

HBuilderX版本号: 2.8.8

手机系统: iOS

手机系统版本号: iOS 13.4

手机厂商: 苹果

手机机型: ip6

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
        var CMPedometer = plus.ios.importClass("CMPedometer");  
        var cMPedometer = plus.ios.newObject("CMPedometer");  
        var date = plus.ios.invoke("NSDate", "date");  
        var ret = plus.ios.invoke(cMPedometer, "startPedometerUpdatesFromDate:withHandler:", date, function (pedometerData: any, error: any) {  
          window.alert("回调事件")  
          console.log("callback", pedometerData, error)  
          console.log("plusGetAttribute", plus.ios.invoke(pedometerData, "plusGetAttribute"))  
        })  
        window.alert(ret);

操作步骤:

回调事件会正常触发但是pedometerData与error 数据无法获取到

预期结果:

获取pedometerData与error 数据

实际结果:

无法获取pedometerData与error 数据

bug描述:

回调事件会正常触发但是pedometerData与error 数据无法获取到

2020-08-24 22:52 负责人:无 分享
已邀请:
q***@qq.com

q***@qq.com (作者)

我也尝试使用plusGetAttribute 来获取数据 但是

undefined is not an object

q***@qq.com

q***@qq.com (作者)

使用 console.log("callback", typeof pedometerData, typeof error) 来获取参数类型发现

callback undefined undefined
两个参数都是 undefined

Joymerry

Joymerry

最后怎么解决的?

唯一小贝

唯一小贝

我弄一周了,还是无法解决,也没找到替换方案

唯一小贝

唯一小贝

搞定了,上个厕所后突发奇想写了个uts插件,就轻松解决,我主要是获取照片资源然后复制,下面是代码,可以参考着写自己的

    try{  
        let fetchOptions = new PHFetchOptions();  
        const assets = PHAsset.fetchAssets(withLocalIdentifiers=[options.photoId], options=fetchOptions)  
        let asset = assets.object(at=0);  
        let assetName = asset.value(forKey = "filename")  
        let imageManager = PHImageManager.default();  
        let options2 = new PHImageRequestOptions();  
        if (UTSiOS.available("iOS 13.0, *")) {  
            imageManager.requestImageDataAndOrientation(for=asset, options=options2, resultHandler = (imageData,dataUTI, orientation, info) : void =>  {  
                if(imageData?.count == null){  
                    options.complete!({code:"-1"})  
                    return;  
                }  
                try{  
                    const destinationURL = NSURL.fileURL(withPath=options.path);  
                    UTSiOS.try(imageData?.write(to=destinationURL), "?" )  
                    options.complete!({code:"0"})  
                }catch(e2){  
                    options.complete!({code:"-1"})  
                }  

            });  
        }else{  
            options.complete!({code:"-1"})  
        }  
    }catch(e){  
        options.complete!({code:"-1"})  
    }  
}

要回复问题请先登录注册