- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个应用程序目前处于 Beta 测试阶段,它具有消息传递功能。它设置为在用户收到来自另一个用户的新消息时发送推送通知。推送通知唯一有效的时间是用户专门向我发送消息时。如果我尝试向任何其他用户发送消息或任何不包括我的用户相互发送消息,推送通知将不起作用。只有发送给我的消息才会在我的设备上触发推送通知。
以下是 Parse 的一些简单屏幕截图,显示了一个正确发送的推送和一个没有发送的推送。
这是从另一个名为“Alissa”的用户发送给我的私有(private)消息,我在其中正确接收了推送通知(如“推送发送”= 1 所示):
以下是上述推送的详细信息:
现在,这是从我的设备发送的私有(private)消息,与正确接收推送通知的设备相同,返回“Alissa”。如您所见,“推送已发送”= 0,这意味着我的设备发送了消息,但收件人没有收到推送通知:
这是该推送的详细信息,其中包含与发送给我的工作中的信息几乎相同的信息:
最后,这是在“Alissa”和不是我的另一个用户之间发送的另一个无法正常工作的推送,因此有 2 个用户与我的设备分开。
这是我查看应用程序中用户的所有推送列表时的模式。他们都有“推送发送”= 0,除了当推送发送到我的设备时,“推送发送= 1”。
我已经在我的推送通知方法完成处理程序中打印到控制台,当我向另一个用户发送消息时,它们表明推送已成功发送。我还将指出我的设备正在用于开发此应用程序。
另外作为旁注,它并不总是像这样。几周前,一切正常。我发布了多个新版本,从来没有遇到过问题。
任何人都可以在这里指导我正确的方向吗?
Edit: Below I've included more details including code in my app and details of my developer account and Parse backend.
println
语句“did register user notification settings”和“did register for remote notification with device token”都在应用程序启动时正确记录。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// ...
let userNotificationTypes = UIUserNotificationType.Alert | UIUserNotificationType.Badge
let settings = UIUserNotificationSettings(forTypes: userNotificationTypes, categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
// ...
}
func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
println("did register user notification settings")
}
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
PFInstallation.currentInstallation().setDeviceTokenFromData(deviceToken)
PFInstallation.currentInstallation().saveInBackground()
println("did register for remote notifications with device token")
}
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
println("didFailToRegisterForRemoteNotificationsWithError: ", error.localizedDescription)
}
println
也不值钱语句“成功”已正确记录。
PFInstallation.query().whereKey("user", equalTo: incomingUser)
PFPush().setQuery(pushQuery)
let senderName = PFUser.currentUser()!.objectForKey("name") as! String
let data = [
"alert" : "New message from \(senderName)",
"badge" : "Increment"
]
push.setData(data)
push.sendPushInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in
if success {
println("success")
} else {
println(error?.localizedDescription)
}
}
最佳答案
从使您的设备与众不同的原因开始,它作为开发环境设备的状态可能是罪魁祸首。
检查设备的构建和随后使用的推送证书是一个很好的检查位置。如果您的设备处于开发模式(意味着您正在通过 Xcode 构建和部署到您的手机),那么它将使用推送证书进行开发而不是生产。 (有关此差异的更多信息,请参阅 this great article by Ray Wenderlich )
这里的关键因素是只有您的设备会使用这个不同的证书。如果它被撤销/损坏/未安装,则只有您的设备会出现此问题。
您还可以通过 TestFlight/HockeyApp/等将应用程序部署到您的手机来测试这一点,而不是让 Xcode 加载它。
更新:
只是倒在代码上,检查错误。一件事已经值得注意:您的 didFinishLaunchingWithOptions
包括一个额外的 PFInstallation.currentInstallation().saveInBackground()
- 你应该删除它,并且只在 didRegisterForRemoteNotificationsWithDeviceToken
中有它方法。
这就是为什么只有您的设备在它的 PFInstallation 中有一个 ID,并且可能是为什么您的设备无法访问其他任何人的原因 - 推送系统正在工作,但没有可以从那里调用的地址;这将是推送时的静默失败,而不是解析系统。
您是否尝试过让您的用户相互发送推送,或者只发送给您和您发送?
关于ios - 推送通知不只从我的设备发送 - 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31549081/
我一直在使用 AJAX 从我正在创建的网络服务中解析 JSON 数组时遇到问题。我的前端是一个简单的 ajax 和 jquery 组合,用于显示从我正在创建的网络服务返回的结果。 尽管知道我的数据库查
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我在尝试运行 Android 应用程序时遇到问题并收到以下错误 java.lang.NoClassDefFoundError: com.parse.Parse 当我尝试运行该应用时。 最佳答案 在这
有什么办法可以防止etree在解析HTML内容时解析HTML实体吗? html = etree.HTML('&') html.find('.//body').text 这给了我 '&' 但我想
我有一个有点疯狂的例子,但对于那些 JavaScript 函数作用域专家来说,它看起来是一个很好的练习: (function (global) { // our module number one
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
我需要编写一个脚本来获取链接并解析链接页面的 HTML 以提取标题和其他一些数据,例如可能是简短的描述,就像您链接到 Facebook 上的内容一样。 当用户向站点添加链接时将调用它,因此在客户端启动
在 VS Code 中本地开发时,包解析为 C:/Users//AppData/Local/Microsoft/TypeScript/3.5/node_modules/@types//index而不是
我在将 json 从 php 解析为 javascript 时遇到问题 这是我的示例代码: //function MethodAjax = function (wsFile, param) {
我在将 json 从 php 解析为 javascript 时遇到问题 这是我的示例代码: //function MethodAjax = function (wsFile, param) {
我被赋予了将一种语言“翻译”成另一种语言的工作。对于使用正则表达式的简单逐行方法来说,源代码过于灵活(复杂)。我在哪里可以了解更多关于词法分析和解析器的信息? 最佳答案 如果你想对这个主题产生“情绪化
您好,我在解析此文本时遇到问题 { { { {[system1];1;1;0.612509325}; {[system2];1;
我正在为 adobe after effects 在 extendscript 中编写一些代码,最终变成了 javascript。 我有一个数组,我想只搜索单词“assemble”并返回整个 jc3_
我有这段代码: $(document).ready(function() { // }); 问题:FB_RequireFeatures block 外部的代码先于其内部的代码执行。因此 who
背景: netcore项目中有些服务是在通过中间件来通信的,比如orleans组件。它里面服务和客户端会指定网关和端口,我们只需要开放客户端给外界,服务端关闭端口。相当于去掉host,这样省掉了些
1.首先贴上我试验成功的代码 复制代码 代码如下: protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
什么是 XML? XML 指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。 你可以通过本站学习 X
【PHP代码】 复制代码 代码如下: $stmt = mssql_init('P__Global_Test', $conn) or die("initialize sto
在SQL查询分析器执行以下代码就可以了。 复制代码代码如下: declare @t varchar(255),@c varchar(255) declare table_cursor curs
前言 最近练习了一些前端算法题,现在做个总结,以下题目都是个人写法,并不是标准答案,如有错误欢迎指出,有对某道题有新的想法的友友也可以在评论区发表想法,互相学习🤭 题目 题目一: 二维数组中的
我是一名优秀的程序员,十分优秀!