Javascript React Native Twilio Programmable Voice initWithToken()和addEventListener(';deviceReady';)不工作

Javascript React Native Twilio Programmable Voice initWithToken()和addEventListener(';deviceReady';)不工作,javascript,ios,reactjs,react-native,twilio,Javascript,Ios,Reactjs,React Native,Twilio,TwilioVoice.initWithToken()返回它已初始化,但未为设备准备好传入/传出呼叫。即使将随机令牌传递到TwilioVoice.initWithToken()中,它仍然返回true 以下是我一直使用的代码: import React, {Component} from 'react'; import { SafeAreaView, StyleSheet, ScrollView, View, Text, StatusBar, TouchableOpac

TwilioVoice.initWithToken()返回它已初始化,但未为设备准备好传入/传出呼叫。即使将随机令牌传递到TwilioVoice.initWithToken()中,它仍然返回true

以下是我一直使用的代码:

import React, {Component} from 'react';
import {
  SafeAreaView,
  StyleSheet,
  ScrollView,
  View,
  Text,
  StatusBar,
  TouchableOpacity,
} from 'react-native';

import {
  Header,
  LearnMoreLinks,
  Colors,
  DebugInstructions,
  ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen';

import TwilioVoice from 'react-native-twilio-programmable-voice';

export default class App extends Component {
  state = {
    twilioInited: false
  };
 

  getAuthToken = () => {
    return fetch('serverurl', { 
      method: 'get',
    })
      .then(response => response.text())
      .catch((error) => console.error(error));
  } 

  getMicrophonePermission = () => {
    const audioPermission = PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;

    return PermissionsAndroid.check(audioPermission).then(async result => {
      if (!result) {
        const granted = await PermissionsAndroid.request(audioPermission, {
          title: 'Microphone Permission',
          message: 'App needs access to you microphone ' + 'so you can talk with other users.',
        });
      }
    });
  }

  initTwilio = async () => { 
    const token = await this.getAuthToken();
    console.log ('Got auth token: ' + token);

    if (Platform.OS === 'android') {
      await this.getMicrophonePermission();
    }

    let success = await TwilioVoice.initWithToken(token);
    console.log(isuccess);

    TwilioVoice.addEventListener('deviceReady', () => {
      this.setState({ twilioInited: true });
      console.log('Device has been configured.');
    });

    TwilioVoice.addEventListener('deviceNotReady', () => {
      console.log('Device not ready.');
    });

    if (Platform.OS === 'ios') { //required for ios
      TwilioVoice.configureCallKit({  
        appName: 'callerid',
      });
      console.log('CallKit Configured');
    }
  };

  makeCall = () => TwilioVoice.connect({ To: 'Alice' });

  render() {
    return (
      <View style={styles.container}>
        <TouchableOpacity onPress={() => this.initTwilio()}>
          <View>
              <Text>Init Twilio!!</Text>
          </View>
        </TouchableOpacity>
        <TouchableOpacity disabled={!this.state.twilioInited} onPress={() => this.makeCall()}>
          <View>
            <Text style={styles.highlight}>Ready to recieve calls: ({this.state.twilioInited ? 'ready' : 'not ready'})</Text>
          </View>
        </TouchableOpacity>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  highlight:{
    fontWeight:'700',
  }
});
import React,{Component}来自'React';
进口{
安全区域视图,
样式表,
滚动视图,
看法
文本,
状态栏,
可触摸不透明度,
}从“反应本机”;
进口{
标题,
学习重新链接,
颜色,
调试说明,
重新加载指令,
}来自“react native/Libraries/NewAppScreen”;
从“react native twilio programmable voice”导入twilio语音;
导出默认类应用程序扩展组件{
状态={
斜纹:假
};
getAuthToken=()=>{
返回fetch('serverurl',{
方法:“get”,
})
.then(response=>response.text())
.catch((错误)=>console.error(错误));
} 
getMicrophonePermission=()=>{
const audioPermission=PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;
返回PermissionsAndroid.check(audioPermission)。然后(异步结果=>{
如果(!结果){
授予常数=等待许可和ROID.请求(音频许可{
标题:“麦克风权限”,
消息:“应用程序需要访问您的麦克风”+,以便您可以与其他用户通话。”,
});
}
});
}
initTwilio=async()=>{
const token=wait this.getAuthToken();
console.log('Got auth token:'+token);
如果(Platform.OS==='android'){
等待此消息。getMicrophonePermission();
}
让成功=等待TwilioVoice.initWithToken(令牌);
console.log(isuccess);
TwilioVoice.addEventListener('DeviceRady',()=>{
this.setState({twilioInited:true});
log('设备已配置');
});
TwilioVoice.addEventListener('DeviceTready',()=>{
console.log('设备未就绪');
});
如果(Platform.OS==='ios'){//ios需要
TwilioVoice.configureCallKit({
appName:“callerid”,
});
log('CallKit Configured');
}
};
makeCall=()=>twilliovoice.connect({To:'Alice'});
render(){
返回(
this.initTwilio()}>
初始斜纹!!
this.makeCall()}>
准备好接收调用:({this.state.twilioInited?'Ready':'notready'})
);
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
为内容辩护:“中心”,
对齐项目:“居中”,
背景颜色:“#F5FCFF”,
},
亮点:{
重量:'700',
}
});
遵循Twilio Quickstart存储库中指定的所有说明。 使用RN版本0.63。 使用RN Twilio可编程语音版本3.0.0 在iPhone XR上使用iOS 12.4 应用程序在前台运行


复制步骤:正常运行

Hi@V.viswana您能解决这个问题吗?我得到了确切的错误hi@V.viswana你能解决这个问题吗?我得到了确切的错误