Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cordova/Phonegap唤醒应用程序处理传入的webrtc电话_Javascript_Java_Cordova_Webrtc_Phonegap - Fatal编程技术网

Javascript Cordova/Phonegap唤醒应用程序处理传入的webrtc电话

Javascript Cordova/Phonegap唤醒应用程序处理传入的webrtc电话,javascript,java,cordova,webrtc,phonegap,Javascript,Java,Cordova,Webrtc,Phonegap,我已经用cordova/phonegap编写了一个音频/视频通话混合应用程序。我曾经 1) 用于音频或视频实际流的webrtc 2) 服务器发送事件(SSE)以侦听传入呼叫 3) 简单对等 当应用程序打开时,一切都很顺利,我可以接收来电信号等并连接。问题是当应用程序关闭时。我无法打开应用程序或获取任何类型的呼叫状态指示 我决定做一些挖掘工作,很快发现这在网络视图中是不可能的。我尝试了一些插件,比如它在一段时间内工作得很好,但会很快耗尽电池,你的应用可能会在appstore通知中被拒绝 当我的应用

我已经用cordova/phonegap编写了一个音频/视频通话混合应用程序。我曾经

1) 用于音频或视频实际流的webrtc

2) 服务器发送事件(SSE)以侦听传入呼叫

3) 简单对等

当应用程序打开时,一切都很顺利,我可以接收来电信号等并连接。问题是当应用程序关闭时。我无法打开应用程序或获取任何类型的呼叫状态指示

我决定做一些挖掘工作,很快发现这在网络视图中是不可能的。我尝试了一些插件,比如它在一段时间内工作得很好,但会很快耗尽电池,你的应用可能会在appstore通知中被拒绝

当我的应用程序打开时,来电将被正确捕获。我只需要打开应用程序。我阅读了有关后台推送消息(无声)的信息,但未能将其打开应用程序。推送消息处理程序仅在应用程序位于前台时调用

所以我终于找到了这个医生,这是我得到的最接近这个答案。Phonegap/Cordova应用程序中不直接支持后台服务

原因是你的混合应用程序是用JS编写的,你的JS代码 在具有Web视图的活动中运行。一旦退出应用程序, 应用程序已暂停

如果你真的想在安卓系统中提供后台服务,你可以 用Java(本机)编写Android服务,并从 你的JS代码。(后台服务为本机,应用程序为JS)

综上所述,我推断我必须执行检测来自java服务的传入调用的实际逻辑,如果我检测到任何东西,我可以强制打开我的应用程序。下面是我打开应用程序后所做的简单逻辑

if (documentLoaded && isLoggedIn)
{
//url returns json only if there is an incoming call otherwise empty

var source = new EventSource("https://www.url.com/api/sse/incomingcall.php?userid=" + userid, {
        withCredentials: true
    });
source.addEventListener("incomingcalls", function (event) {
    var callSession = JSON.parse(event.data);
    // HandleIncomingCall();
}, false);
}

我的问题是我不是一个java程序员,以前也没有写过插件。我如何创建一个android服务,定期监听上面的url,如果检测到任何json,请打开我的应用程序

cordova有一些后台插件,你试过吗?是的,我试过了,但有很多应用程序被拒绝的警告,当我禁用WebViewOptimization时,它也会消耗大量电池。为了让它进入完美的工作状态,好吧,因为你我在Java方面不够好,所以我希望你能找到一个解决方案。祝你好运