2017-07-13 14 views
1

診断プラグインを使用して、場所がオンになっているかどうかについての情報を取得しています。プラグインは、コードのいくつかの問題のために削除するまで正常に動作していました。Cordova診断プラグインが動作しない

今、同じアプリでプラグインをもう一度追加しても、機能しません。

デモ用に作成した別のアプリで同じプラグインが動作しています。

診断プラグインのレガシーバージョンも試しました。私config.xmlの

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); 
    }); 
} 

エントリファイル

<plugin name="cordova.plugins.diagnostic" spec="~3.6.5" /> 

コルドバのバージョン:6.5.0

インストールプラットフォーム: アンドロイド6.2.3 ブラウザ4.1.0 ios 4.3.1

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

クロムでデバッグしようとしましたが、「未定義のプロパティ診断を読み取れません」というエラーが表示されます。

また、私はWindows 7を使用しており、Android 5,5.1,6.0の異なるバージョンで同じアプリをテストしました。 (サムスン+ソニー)

以前は動作していたし、「場所が有効/無効」というアラートを表示していました。

+0

「それは機能していません」より具体的にする必要があります。期待される行動と実際の行動を説明してください。テスト環境の詳細を入力します。 Android 7.1.1を実行している端末。 JSエラーまたはエラーメッセージが生成されている場合は、投稿してください:Chrome Dev ToolsをWebviewに接続して、JSエラーを表示し、ブレークポイントをコード内に配置してステップスルーをデバッグしてください。 – DaveAlden

+0

@DaveAlden done –

答えて

2

「未定義のisLocationEnabledプロパティを読み取れません」というエラーが表示されます。

これはcordova.plugins.diagnosticオブジェクトが利用できないことを示します。

これは、最も一般的にコルドバは、実行時に動的にプラグインのJSコンポーネントをロードするため、devicereadyイベントは、解雇される前に、プラグインを起動しようとによって引き起こされます。

プラグインがプロジェクトに正しくインストールされていない可能性があります。diagnostic.jsがソースにリストされている場合は、Chrome Devツールをチェックインしてください。存在しない場合は、cordova platform rm android && cordova platform add androidを実行してネイティブAndroidプロジェクトを再構築してください。

+0

ブラウザを確認しましたが、diagnostic.jsがソースに表示されていません。また、Androidプラットフォームを削除して、もう一度追加しました。まだ同じ問題。アプリ内のpluginsフォルダにはcordova.plugins.diagnosticが含まれていますが、まだconfig.xml内にはそれに関するエントリがありますが、まだ動作していません。 –

+0

'私はブラウザをチェックしました.' - Chrome DevToolsがAndroidデバイス(' cordova run android')に接続されていることを意味します。もちろん、ネイティブのモバイル環境が必要なので、プラグインはブラウザ環境( 'cordova run browser')で動作しません。 – DaveAlden

+0

はいプラットフォームのアンドロイドを削除してもう一度追加しました。私の携帯電話をDevToolsのcordova run androidと接続しました。初めてプラグインが正常に動作し、「場所が無効です」というアラートが表示されました。私がアプリを2回目に起動したとき、もう一度動作していません。 コンソールに「未定義のプロパティ診断を読み取れません」と表示されます。 –

関連する問題