通过网络应用程序推送未通过Sinch的推送通知

时间:2018-03-06 09:59:57

标签: ios objective-c push-notification sinch

设置如下:使用JS-SDK(目前是Sinch网络示例)的网站将调用iPad应用程序(可能在后台运行)。

我已经生成并将一个PKCS 12开发证书上传到Sinch Dashboard。我可以使用Pusher手动发送推送通知(使用相同的PKCS 12证书)。

但是,从我的网站调用时,该应用程序不会收到任何推送通知。 application:didReceiveRemoteNotification:fetchCompletionHandler:未被调用。

使用iOS示例SinchCallinPush项目时,使用正确的应用程序和密钥,并且主机设置为sandbox.sinch.com

,我也无法接听电话
  

通过添加第[_client startListeningOnActiveConnection];行,我可以在前台接听电话

我不知道在哪里继续搜索可能出现的问题,非常感谢任何帮助。

2 个答案:

答案 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传递自定义标头的方法。