Cordova诊断插件无法正常工作

时间:2017-07-13 05:38:46

标签: android cordova phonegap-plugins phonegap

我正在使用诊断插件来获取有关该位置是否已打开的信息。该插件工作正常,直到我删除它,因为代码中的一些问题。

现在当我在同一个应用程序中再次添加插件时,它无法正常工作。

相同的插件正在我为演示目的创建的另一个应用程序中工作。

我也尝试过该版本的诊断插件。

function checkLocationEnabled(){
    cordova.plugins.diagnostic.isLocationEnabled(function(enabled){
        alert("Location is " + (enabled ? "enabled" : "disabled"));
        alert(enabled);
        if(enabled == false){
            cordova.plugins.locationAccuracy.canRequest(function(canRequest){
                if(canRequest){
                    cordova.plugins.locationAccuracy.request(function(){
                        alert("GPS turned on");
                        setLatitudeLongitude();
                    }, function (error){
                        alert("Request failed");
                        if(error){
                            // Android only
                            alert("error code="+error.code+"; error message="+error.message);
                            if(error.code !== cordova.plugins.locationAccuracy.ERROR_USER_DISAGREED){
                                if(window.confirm("Failed to automatically set Location Mode to 'High Accuracy'. Would you like to switch to the Location Settings page and do this manually?")){
                                    cordova.plugins.diagnostic.switchToLocationSettings();
                                }
                            }
                        }
                    }, cordova.plugins.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY // iOS will ignore this
                    );
                }
            });
        } else if (enabled == true){
            setLatitudeLongitude();
        }
    }, function(error){
        alert("The following error occurred: "+error);
    });
}

我的 config.xml 文件

中的条目
<plugin name="cordova.plugins.diagnostic" spec="~3.6.5" />

Cordova版本:6.5.0

已安装的平台:    android 6.2.3   浏览器4.1.0   ios 4.3.1

<preference name="android-minSdkVersion" value="14" />

尝试在chrome上进行调试,它显示未定义的错误'无法读取属性诊断'。

另外我使用的是Windows 7,我在不同版本的android 5,5.1,6.0上测试了相同的应用程序。 (三星+索尼)

之前曾经工作并显示“位置已启用/已禁用”的提示。

1 个答案:

答案 0 :(得分:2)

  

它显示错误&#39;无法读取属性isLocationEnabled&#39;未定义的。

这表示robocopy P:\home\Personal\lit\ P:\home\Personal\lit\tt *.sql 对象不可用。

这最常见的原因是在cordova.plugins.diagnostic事件被触发之前尝试调用插件,因为Cordova在运行时动态加载插件的JS组件。

另一个潜在原因是插件没有正确安装到项目中 - 如果Sources中列出deviceready,请检查Chrome Dev工具。如果不存在,请执行diagnostic.js重建原生Android项目。