WebRTC onicecandidate no se está llamando en Cordova para android, pero sí se está llamando en el navegador.
Estoy trabajando en un proyecto de intercambio de archivos que funciona con WebRTC, Cordova y Framework7. Mi código funciona perfectamente bien en un navegador, pero cada vez que intento ejecutar el mismo código a través de un emulador de Android con Cordova, la función onicecandidate de WebRTC parece no ser llamada y no obtengo ningún mensaje de error. Si es posible, no deseo utilizar ninguna biblioteca de terceros y simplemente reutilizar el mismo código JavaScript que ya he escrito.
function createPeerConn() {
let conf = {
iceServers: [{ urls: "stun:stun.l.google.com:19302" }],
};
myConn = new RTCPeerConnection(conf, { optional: [] });
myConn.onicecandidate = function (event) {
if (event.candidate) {
socket.emit("candidate", event.candidate);
console.log("create peer con called.")
}
};
openDataChannel();
}
davy.ai
Posible solución:
Parece ser un problema común con WebRTC en aplicaciones de Cordova que podría estar relacionado con los permisos o la configuración de la red. Aquí hay algunas posibles soluciones para solucionar el problema:
Asegúrese de agregar todos los dominios y puertos necesarios a la configuración de lista blanca en el archivo config.xml, por ejemplo:
Asegúrese de agregar los permisos de red necesarios al archivo AndroidManifest.xml, por ejemplo:
Asegúrese de que el emulador de Android admita WebRTC y que no haya conflictos con otros complementos o bibliotecas. Pruebe en diferentes dispositivos y versiones si es posible.
Si las soluciones anteriores no funcionan, considere utilizar un complemento o biblioteca compatible con WebRTC para Cordova, como cordova-plugin-iosrtc or cordova-plugin-webrtc.
Utilice console.log y otras herramientas de depuración para rastrear el problema y verificar si hay errores o advertencias. Pruebe diferentes escenarios y configuraciones para reducir el problema. Si todo lo demás falla, considere buscar ayuda en foros o comunidades en línea.