Ios 无声通知

Ios 无声通知,ios,parse-platform,notifications,push-notification,apple-push-notifications,Ios,Parse Platform,Notifications,Push Notification,Apple Push Notifications,在使用远程通知(来自Parse.com)的iOS应用程序中,我有以下问题: 虽然看到一个小便条告诉用户有新的东西来了,人们还是很感激的, 也有一些时候,人们更欣赏沉默。 知道应用程序正在做它应该做的工作(在后台),而不被告知每一个事件是我们想要的 我如何才能做到这一点? 浏览我在Info.plist中读到的关于UIBackgroundModes的网络;但是当我尝试时,我没有得到我所希望的结果。 我想我一定是用错工具了,或者是用错了。 我还读到,苹果公司在审查应用程序时,可能会对这些UIBackg

在使用远程通知(来自Parse.com)的iOS应用程序中,我有以下问题: 虽然看到一个小便条告诉用户有新的东西来了,人们还是很感激的, 也有一些时候,人们更欣赏沉默。 知道应用程序正在做它应该做的工作(在后台),而不被告知每一个事件是我们想要的

我如何才能做到这一点?

浏览我在Info.plist中读到的关于UIBackgroundModes的网络;但是当我尝试时,我没有得到我所希望的结果。 我想我一定是用错工具了,或者是用错了。 我还读到,苹果公司在审查应用程序时,可能会对这些UIBackgroundModes的使用非常挑剔。 因此,如果可能的话,我也可以避免找麻烦

为了避免误解,我把代码放在下面,这是有效的;除了“嘈杂”这一事实。这意味着应用程序很乐意收到通知(这很有效);但是用户会很高兴不知道这件事,也就是说不想一直在电话里看到“ABC”

在云端:

function pushNotification()
{
    var pushQuery = new Parse.Query(Parse.Installation);
    pushQuery.equalTo(‘fieldXZY’, 'ios');

    Parse.Push.send({
                    where: pushQuery,
                    data: {
                    alert: “ABC"
                    }
                    }, {
                    success: function() {},
                    error: function(error) {
                    throw "Got an error " + error.code + " : " + error.message;
                    }
                    });
}
在应用程序内部:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    NSString *notifString=[[userInfo valueForKey:@"aps"] valueForKey:@"alert"];

    if ([notifString isEqualToString:@“ABC"]) // The Notification has come.
        [self doTheWorkForABCNotif];
}

据我所知,没有api在本机代码中禁用推送通知声音。用户可以通过设置->通知->应用禁用或启用它


然而,我认为通过定制声音规范可以实现这一点。如果您不知道,请检查此项。为此,请放置一个完全不包含声音的自定义声音文件。然后,如果您不希望用户接收声音,只需在JSON负载中指定声音文件,然后再将其发送到Apple推送通知服务

据我所知,没有api可以在本机代码中禁用推送通知声音。用户可以通过设置->通知->应用禁用或启用它


然而,我认为通过定制声音规范可以实现这一点。如果您不知道,请检查此项。为此,请放置一个完全不包含声音的自定义声音文件。然后,如果您不希望用户接收声音,只需在JSON负载中指定声音文件,然后再将其发送到Apple推送通知服务

据我所知,没有api可以在本机代码中禁用推送通知声音。用户可以通过设置->通知->应用禁用或启用它


然而,我认为通过定制声音规范可以实现这一点。如果您不知道,请检查此项。为此,请放置一个完全不包含声音的自定义声音文件。然后,如果您不希望用户接收声音,只需在JSON负载中指定声音文件,然后再将其发送到Apple推送通知服务

据我所知,没有api可以在本机代码中禁用推送通知声音。用户可以通过设置->通知->应用禁用或启用它


然而,我认为通过定制声音规范可以实现这一点。如果您不知道,请检查此项。为此,请放置一个完全不包含声音的自定义声音文件。然后,如果您不希望用户接收声音,只需在JSON有效负载中指定声音文件,然后再将其发送到Apple推送通知服务

如果您不想接收通知,请不要发送声音在aps中键入aps应与以下类似

aps={
alert=“您已收到一条消息”;
badge=3;
“内容可用”:1,//此键将允许接收有效负载数据,即使应用程序位于后台
};

如果您不想显示警报,请删除警报。在自定义有效负载键中执行所需操作,如果不希望接收通知时使用语音,请不要在aps中发送声音aps应与以下类似

aps={
alert=“您已收到一条消息”;
badge=3;
“内容可用”:1,//此键将允许接收有效负载数据,即使应用程序位于后台
};

如果您不想显示警报,请删除警报。在自定义有效负载键中执行所需操作,如果不希望接收通知时使用语音,请不要在aps中发送声音aps应与以下类似

aps={
alert=“您已收到一条消息”;
badge=3;
“内容可用”:1,//此键将允许接收有效负载数据,即使应用程序位于后台
};

如果您不想显示警报,请删除警报。在自定义有效负载键中执行所需操作,如果不希望接收通知时使用语音,请不要在aps中发送声音aps应与以下类似

aps={
alert=“您已收到一条消息”;
badge=3;
“内容可用”:1,//此键将允许接收有效负载数据,即使应用程序位于后台
};

如果您不想显示警报,请删除警报。如果你想在应用程序中触发某些东西(如后台提取、数据库中的数据清除、更新同步日期等),那么在自定义负载键中执行任何你想要的操作都非常有用。要成功实现这一点,你需要三件事

1) 背景模式 在应用程序的Info.plist中,您需要添加应用程序下载内容以响应推送通知,作为所需的后台模式之一

2) 委托回调 在应用程序代理中,您需要实现

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
// Do your stuff here 
}
注意附加的

fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
回调中的块

并实施

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
// Run your background fetch here
}
3) 通知有效负载 有效载荷需要采用以下结构(除任何自定义有效载荷外)


干杯

如果您想在应用程序中触发某些东西(如后台提取、数据库中的数据清除、更新同步日期等),则静默通知非常有用。要成功实现这一点,您需要三件事

1) 背景模式 在你的应用程序中
 {
        "aps" : {
            "content-available" : 1,
            "sound" : ""
        }
        "customPayloadKey":3,
        "additionalPayload": {
                               "customKey":"customValue"
                             }
    }