Cordova Android权限对话框不会提示

时间:2018-08-16 00:59:09

标签: javascript android angularjs cordova

我正在帮助AngularJS cordova应用程序的一些代码。我有一段代码,单击按钮即可触发Android上的录制音频功能。

在进行实验时,我想让“ if”和“ else”语句运行相同的代码(长话短说,但这只是出于测试目的)。

当我将相同的代码添加到“ else”语句中时,该按钮不再触发录制音频麦克风的权限。而是,它记录错误消息。

唯一的变化是将曾经在if语句中工作过的相同代码添加到else语句中。我没有编写代码,所以我试图理解它,不确定在此忽略什么。

为清楚起见,我同时包含了原始功能和更新后的功能

原始功能

//This pops the Android microphone recording

function recordButton(){
    if($rootScope.currentState === 'page1'){
        if (vm.recordReady){
            vm.recordReady = false;
            vm.recordRecording = true;
            dialogflowService.beginMicListener()
            .catch(err => {
                console.error('Audio Problem ', err);
                vm.recordReady = true;
                vm.recordRecording = false;
                vm.recordLoading = false;    
            });
        } else if (vm.recordRecording){
            vm.recordRecording = false;
            vm.recordLoading = endListener();
        }
    } else {
            console.log("Soemthing Else");
    }
}

新功能

function recordButton(){
    if($rootScope.currentState === 'page1'){
        if (vm.recordReady){
            vm.recordReady = false;
            vm.recordRecording = true;
            dialogflowService.beginMicListener()
            .catch(err => {
                console.error('Audio Problem ', err);
                vm.recordReady = true;
                vm.recordRecording = false;
                vm.recordLoading = false;    
            });
        } else if (vm.recordRecording){
            vm.recordRecording = false;
            vm.recordLoading = endListener();
        }
    } else {
        if (vm.recordReady){
            vm.recordReady = false;
            vm.recordRecording = true;
            dialogflowService.beginMicListener()
            .catch(err => {
                console.error('Audio Problem ', err); //This error prints and no Android microphone permission prompt shows
                vm.recordReady = true;
                vm.recordRecording = false;
                vm.recordLoading = false;    
            });
        } else if (vm.recordRecording){
            vm.recordRecording = false;
            vm.recordLoading = endListener();
        }
    }
}

0 个答案:

没有答案