设置如下:使用JS-SDK(目前是Sinch网络示例)的网站将调用iPad应用程序(可能在后台运行)。
我已经生成并将一个PKCS 12开发证书上传到Sinch Dashboard。我可以使用Pusher手动发送推送通知(使用相同的PKCS 12证书)。
但是,从我的网站调用时,该应用程序不会收到任何推送通知。 application:didReceiveRemoteNotification:fetchCompletionHandler:
未被调用。
使用iOS示例SinchCallinPush项目时,使用正确的应用程序和密钥,并且主机设置为sandbox.sinch.com
通过添加第
[_client startListeningOnActiveConnection];
行,我可以在前台接听电话
我不知道在哪里继续搜索可能出现的问题,非常感谢任何帮助。
答案 0 :(得分:1)
我在web和Android应用程序之间遇到同样的问题,配置为通过firebase云消息接收推送通知。如果从网络应用程序调用 - 推送永远不会到达。如果"推动"手动通过Post请求或从另一个Android应用程序调用,一切都按预期工作。
现在我必须使用自定义推送消息唤醒设备并启动startListeningOnActiveConnection的解决方法 - 之后我可以接收呼叫(并且必须在一些合理的超时后停止)
答案 1 :(得分:1)
这是您的答案,但是Sinch Docs中没有记录,但是我在探索Sinch Web SDK缩小版JS时发现了。
您只需要在初始化应用程序功能时启用对推送通知的支持。
sinchClient = new SinchClient({
applicationKey: 'xyz...',
capabilities: { calling: true, video: true },
supportActiveConnection: true,
supportManagedPush: true, //this is the piece of code which will enable push for you
//Note: For additional loging, please uncomment the three rows below
onLogMessage: function (message) {
console.log(message);
},});
p.s。这将使用默认的有效负载发送通知,这对我来说至少不是很有用
iOS端的有效负载如下所示
2020-05-13 01:36:31.823787+0500 SinchVideoCallKit[21670:8839367] didReceiveIncomingPushWithPayload: {
aps = {
alert = {
"loc-key" = "SIN_INCOMING_CALL";
};
};
sin = "AgEBN0Jb18/KQja0K04exxxxx...==";}
到目前为止,我还没有找到一种在推送通知有效负载中从Web传递自定义标头的方法。