2017-09-27 36 views
3

私はCordovaプラグイン(アンドロイド)でカメラにアクセスしています。このため、私はpermissionをユーザーに求めています。 permissionダイアログでユーザーが「許可」をクリックすると、カメラを起動する必要があります。このため、ネイティブアンドロイドで、私はそうonRequestPermissionsResult in Cordova android plugin

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    switch (requestCode) { 
     case RequestCameraPermissionID: { 
      if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { 
        return; 
       } 
       try { 
        cameraSource.start(surfaceView.getHolder()); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

      } 
     } 
     break; 
    } 
} 

ようonRequestPermissionsResultメソッドをオーバーライドしています、私は、コルドバのプラグインでonRequestPermissionsResultを使用したいです。誰にでも私を助けられますか?

答えて

3

あなたのプラグインの.javaファイルにそのメソッドを入れると、それはいつものように動作するはずです。実行時のアクセス許可については、documentationという項目もあります。 要求権限は次のように動作します:

cordova.requestPermission(CordovaPlugin plugin, int requestCode, String permission); 

とコールバックメソッドは次のようになります。

public void onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) throws JSONException { 
    ... // you can find the whole example implementation in the docs 
} 

あなたはこの自分を実装したくない場合は、常にこの便利なプラグインを使用することができます。cordova-plugin-android-permissionsへカメラの許可を要求する。

編集(アンドロイド-権限プラグインを使用する方法):

var permissions = cordova.plugins.permissions; 

permissions.hasPermission(permissions.CAMERA, function(status) { 
    if (status.hasPermission) { 
    // here you can savely start your own plugin because you already have CAMERA permission 
    } 
    else { 
    // need to request camera permission 
    permissions.requestPermission(permissions.CAMERA, success, error); 

    function error() { 
     // camera permission not turned on 
    } 

    function success(status) { 
     if (status.hasPermission) { 
     // user accepted, here you can start your own plugin 
     } 
    } 
    } 
}); 
+0

どのように私は私のカスタムプラグインで、別のプラグインを使用することができ、あなたのデビッドありがとう? – Bahu

+0

カスタムプラグインで別のプラグインを使用することはできません。あなたはあなたのアプリの.jsコードでそれを使うことができます。例えば。 android-permissionsプラグインを使用してカメラの許可を要求し、ユーザが許可を与えた場合にのみ自分のプラグインを起動します。 – David

+0

あなたはどんな例も共有できます – Bahu