无法使用Push Kapsel cordova插件在IOS中触发Push通知注册

2020-08-23 17:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我们目前正在使用Kapsel Cordova插件,SMP 3.0和SAP UI5 for UX为其中一位客户开发混合应用程序。 我们已经向客户提供了Web和Android解决方案,并且所有功能都按预期运行。

但是我们遇到IOS推送通知问题。 我们在register.js中使用以下代码片段来注册推送通知。

var nTypes = sap.Push.notificationType.SOUNDS | sap.Push.notificationType.ALERT;

sap.Push.registerForNotificationTypes(nTypes,regSuccess,regFailure,processNotification,"");

上面带有GCM ID的代码对于Android推送通知正常工作。 但是,当同一呼叫用于APSN注册时,我们将无法从推送通知注册呼叫中获得任何回调。

经过反复试验的进一步调查,我们可以通过Console在上面两行中触发相同的推送通知,但是当从register.js或任何其他相关位置调用了相同的代码时。 我们没有看到任何回调响应。

任何人都可以帮助我们,让我们知道我们可能会缺少什么。

此外,任何有关如何清除IOS应用程序中的缓存和Cookie 的信息都将非常有帮助。 当前在android中,我们正在通过Window.opens(使用InAppBrowser)来执行此操作,但是似乎并不能很好地支持IOS。

注意:我还将附加显示触发了推送通知调用的日志。

感谢和问候,

Sachin

SMP Push Log.txt.zip (14.5 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我们目前正在使用Kapsel Cordova插件,SMP 3.0和SAP UI5 for UX为其中一位客户开发混合应用程序。 我们已经向客户提供了Web和Android解决方案,并且所有功能都按预期运行。

但是我们遇到IOS推送通知问题。 我们在register.js中使用以下代码片段来注册推送通知。

var nTypes = sap.Push.notificationType.SOUNDS | sap.Push.notificationType.ALERT;

sap.Push.registerForNotificationTypes(nTypes,regSuccess,regFailure,processNotification,"");

上面带有GCM ID的代码对于Android推送通知正常工作。 但是,当同一呼叫用于APSN注册时,我们将无法从推送通知注册呼叫中获得任何回调。

经过反复试验的进一步调查,我们可以通过Console在上面两行中触发相同的推送通知,但是当从register.js或任何其他相关位置调用了相同的代码时。 我们没有看到任何回调响应。

任何人都可以帮助我们,让我们知道我们可能会缺少什么。

此外,任何有关如何清除IOS应用程序中的缓存和Cookie 的信息都将非常有帮助。 当前在android中,我们正在通过Window.opens(使用InAppBrowser)来执行此操作,但是似乎并不能很好地支持IOS。

注意:我还将附加显示触发了推送通知调用的日志。

感谢和问候,

Sachin

SMP Push Log.txt.zip (14.5 kB)
付费偷看设置
发送
2条回答
粗暴的香蕉
1楼-- · 2020-08-23 17:40

在我的App中注册后尽早调用Push的寄存器时遇到问题。

最后我将代码添加到了主视图控制器的onInit中:

在onInit中:

 if(window.cordova){
   this.registerForPush(); 
}

和函数:

 registerForPush:function(){
   var that = this;
   var nTypes = sap.Push.notificationType.BADGE |
                sap.Push.notificationType.SOUNDS |
                 sap.Push.notificationType.ALERT;
 
   sap.Push.registerForNotificationTypes(nTypes,function(ctx){
     that.pushRegSuccess(ctx);
   },
   函数(错误){
     that.pushRegFailure(err);
   },
function(notif){ that.processNotification(notif); }, 空值); },
pushRegSuccess:函数(结果){ sap.m.MessageToast.show("推:已成功注册:" + JSON.stringify(result)); },
pushRegFailure:函数(errorInfo){ sap.m.MessageToast.show(" PUSH:注册时出错。"
+ JSON.stringify(errorInfo)); console.log(" PUSH:注册时出错。" + JSON.stringify(errorInfo)); }, processNotification:function(notification){ sap.m.MessageToast.show(" PUSH:in processNotification:" + JSON.stringify(notification)); console.log(" PUSH:收到通知:" + JSON.stringify(notification)); }

最终将其转移到Utility类会更清洁。

当学会了学习
2楼-- · 2020-08-23 17:23

Uhm cookie存储在您的App本身中,因此没有通用按钮。
但是我 找到了一些可能有帮助的代码。

两个本机iOS: http://stackoverflow.com/questions/4471629/how-to-delete-all-cookies-of-uiwebview

或者有一个Cordova插件,虽然有点旧,但是 可能仍然有效: bez4pieci/Phonegap-Cookies-Plugin-Java-GitHub

关于 推送,因为控制台版本正在运行,我建议调试javascript代码和本机代码。 对于Javascript代码,请不要忘记包含在de Kapsel Push Plugin的push.js中完成的步骤。

一周热门 更多>