Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get push notification while App in foreground iOS #169

Closed
njleonzhang opened this issue Sep 28, 2016 · 11 comments
Closed

Get push notification while App in foreground iOS #169

njleonzhang opened this issue Sep 28, 2016 · 11 comments

Comments

@njleonzhang
Copy link

http://stackoverflow.com/questions/14872088/get-push-notification-while-app-in-foreground-ios

ios9上的默认情况下,如果app在前台,则不会show一个notification alert,但是这个行为挺奇怪的,原生应用需要自己写的代码来实现这种场景下的notification alert,作为一个plugin, 我觉得jpush应该实现一个配置项,让app的前台notification alert可以实现。

@pikacode
Copy link
Collaborator

  • Apple 早先的考虑是:推送的作用是提醒用户有新的信息请点击应用,已经处于前台用户没必要再点击应用,直接跳转到具体页面给用户就行了
  • iOS 10 系统已经支持了在前台展示横幅
  • 判断 App 是否在前台并写一个 alert 你不会吗?

@njleonzhang
Copy link
Author

njleonzhang commented Sep 28, 2016

@pikacode 我只是觉得作为一个库,你们应该做一下这件事。
判断 App 是否在前台并写一个 alert 你不会吗?, 从这句话里,我看出来了一顿鄙视和不屑。
即使如此,我还是回答一下你,我不是ios工程师,但是我也实现这个功能,但是我实现了也是要加到这个plugin的逻辑里,我需要自己维护一个版本,这样不便于更新升级,或者是我实现一个版本然后给你们提PR,考虑我不是专业ios工程师,所以没有准备这么做,给你们开这个帖子,只是提些建议,不想这位却是如此傲慢,问题我关了就是。

@pikacode
Copy link
Collaborator

pikacode commented Sep 28, 2016

@njleonzhang 判断 App 是否在前台并写一个 alert 需要写在 plugin 里吗?

@pikacode
Copy link
Collaborator

@njleonzhang 不是我傲慢, alert(notification); 一行代码就搞定的事情,您可以思索一下再提问吗?

@njleonzhang
Copy link
Author

@pikacode 别在plugin里,写在哪?我重写个plugin?还是在js层去监听你们的某个时间?用这个plugin的是cordova项目,不是原生项目,alert(notification)请指教你说的是什么?js的alert?

@pikacode
Copy link
Collaborator

@njleonzhang 麻烦您看一眼 API 文档谢谢 前台收到推送

@njleonzhang
Copy link
Author

@pikacode 麻烦大神解释下, 下面的代码如果让通知栏上出现通知?

var onReceiveNotification = function(event) {
    var alertContent;
    alertContent = event.aps.alert;
    alert("open Notificaiton:" + alertContent);
}

再麻烦大神看下别的库支持我所说的场景的时候是怎么做的:
phonegap/phonegap-plugin-push#76
phonegap/phonegap-plugin-push#41
https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/API.md
在看一下我一开始贴出来的链接,要怎么实现这个功能
http://stackoverflow.com/questions/14872088/get-push-notification-while-app-in-foreground-ios

当然,如果js层就能实现,请告知。

issue打开了让大家学习下

@njleonzhang njleonzhang reopened this Sep 28, 2016
@pikacode
Copy link
Collaborator

@njleonzhang

  • 本插件是负责调用 SDK 的原生方法的,如果您对 SDK 的功能有需求可以提到 极光社区
  • 虽然是主要负责调用原生方法,但我们接下来也会对 iOS 10 的特性进行封装,提供接口。不过你提的需求在我们这里是不能擅自添加的,因为这不是属于系统原生的东西,有点像 trick,需要 SDK 那边也支持了,我这里才能提供接口。
  • 另外我个人写了一个库用来处理你说的场景 EBForeNotification,虽然是 native,但只需要拷贝 2 行代码到工程里就配置完成了。

@njleonzhang
Copy link
Author

@pikacode 谢谢,你的回答,我们在一个频道了。希望代为转达这个需求,既然你对这个需求这么清楚,想必知道它的作用,这也是一个common的需求,再看别的库也有,jpush没有不是落后了么。ios10虽然已经默认支持这种行为了,但是ios9将还是会长期的存在于市场之上,那么开发者都需要面临这个问题。既然如此, 如果要实现这个功能,每个开发者都需要去改源生代码, 作为一个库这就不到位了。

@pikacode
Copy link
Collaborator

  • 您可以参照其他有类似需求的 App,他们在 App 处于前台时展示的横幅样式繁多,很多都有各自自定义的样式,我写的库也只是提供了一种类似系统的样式。从 SDK 的角度来说也是不太可能会添加若干种样式来满足所有开发者的需求的,那样会非常臃肿。
  • 虽然我对 Hybrid 没有非常深入的了解,但是我觉得不使用 native 写一个类似的自定义横幅应该也是可以实现的。
  • 如果您对 SDK 的功能有需求可以提到 极光社区

@njleonzhang
Copy link
Author

@pikacode 互相的意思表达清楚了,close this issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants