iThink
iThink
  • 发布:2017-07-10 16:36
  • 更新:2017-07-10 16:36
  • 阅读:5242

关闭GPS后,Geolocation获取位置权限失败

分类:5+ SDK

HBuild 8.~ 的基座和新版本的SDK都有类似问题。这会导致在Andriod5.0和IOS上,不论是真机测试还是在线/离线打包,当关闭GPS开启其他定位途径比如WIFI/4G时,系统会提示「 获取定位权限失败 」,错误代码是 22。 这是不妥当的。

同时我发现HBuilder 7.6.5.201612301621没有此问题。

查阅最新版SDK和HBuild 8.~ 基座真机测试APK,在 io.dcloud.js.geolocation.GeolocationFeatureImpl文件中与HBuilder 7.6.5.201612301621基座打包应用的同一文件存在这样的差别:

//HBuild 8.~  
public String execute(final IWebview var1, final String var2, final String[] var3) {  
    PermissionUtil.usePermission(var1.getActivity(), var1.obtainApp().isStreamApp(), "LOCATION", new StreamPermissionRequest(var1.obtainApp()) {  
        public void onDenied(String var1x) {  
            var1x = DOMException.toJSON(22, "获取定位权限失败");  
            JSUtil.execCallback(var1, var3[0], var1x, JSUtil.ERROR, true, false);  
        }  

        public void onGranted(String var1x) {  
            GeolocationFeatureImpl.this.a.a(var1, var2, var3);  
        }  
    });  
    return null;  
}  
//HBuilder 7.6.5.201612301621  

public String execute(IWebview var1, String var2, String[] var3) {  
        this.a.a(var1, var2, var3);  
        return null;   
}  

我相信这就是出错的根源。并且为此问题困扰的用户不少。请官方尽快确认基座和SDK中这样的代码是否需要完善。谢谢!

2 关注 分享
4***@qq.com 丢丢itach

要回复文章请先登录注册

iThink

iThink (作者)

回复 4***@qq.com :
没说法,已弃DCloud
2018-02-26 18:37
4***@qq.com

4***@qq.com

顶一下,官方就没有个说法吗?
2017-11-23 11:22
banyingli

banyingli

有同样的问题,求回复。
2017-08-10 15:42
px15229

px15229

这个问题有回复吗?
2017-07-26 16:56