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中这样的代码是否需要完善。谢谢!
4 个评论
要回复文章请先登录或注册
iThink (作者)
4***@qq.com
banyingli
px15229