2013-08-22 37 views
3

我试图确定用户是否为我的应用程序使用phonegap(版本1.7)启用了推送通知。检查用户是否使用电话支持在iPhone上推送通知1.7

到目前为止,我只想出了this插件,它没有专门用于检查问题的方法,但确实有注册推送通知的方法,该方法可能会返回错误,这可能会对用户进行指示禁用推送通知。但正如你所看到的那样,这非常含糊。

所以我的问题是 - 是否有插件(或任何其他方式)来确定用户是否启用了我的应用程序的推送通知?

回答

4

您可以检查任何类型的推送通知都可以使用此启用:

if([UIApplication sharedApplication].enabledRemoteNotificationTypes == UIRemoteNotificationTypeNone) 

这种状态可以通过呼叫装置后准备一个简单的插件来accesd。

UPDATE:写插件,该插件内,请检查状态,如果你需要将其保存在你需要一个服务器端API和一些本地端代码服务器首先返回的JavaScript

,上IOS注册推送通知后有两个回调函数

  1. didFailToRegisterForRemoteNotificationsWithError
  2. didRegisterForRemoteNotificationsWithDeviceToken

    如果成功,您可以使用设备ID或任何唯一ID向您的服务器发送请求,以便保存已注册的设备。

    • (无效)应用:(UIApplication的*)应用didRegisterForRemoteNotificationsWithDeviceToken:(NSData的*)deviceToken {

      的NSString *标记= [[[[deviceToken描述] stringByReplacingOccurrencesOfString:@ “<” withString:@ “”] stringByReplacingOccurrencesOfString:@“>”withString:@“”] stringByReplacingOccurrencesOfString:@“”withString:@“”];

      [self postUpdateRequest:token]; //请求到服务器

      }

发送POST请求使用

NSURL *aUrl = [NSURL URLWithString:uRI]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 

    [request setHTTPMethod:@"POST"]; 
    NSString *postString [email protected]"Your Data"; 
    [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]]; 

    NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:request 
                   delegate:self]; 
    [connection start]; 
     if(connection) { 
     // success 
     } else { 
     //error 
     } 

如果注册失败(didFailToRegisterForRemoteNotificationsWithError),您可以发送requset服务器有数据错误或不。

设备准备就绪后,从手机端发送一个ajax请求给您的服务器,并检查您的设备是否注册。为了获得唯一的ID你可以使用简单的插件。编写简单的插件,请点击此http://docs.phonegap.com/en/edge/guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guide

可惜你不能为你的应用从应用程序代码启用或禁用推送通知。check this

+0

感谢您的重播,但我的问题是:我怎么知道用户勾选了他的iPhone上的“允许推送通知”为我的应用程序。这似乎没有回答它(除非我失去了一些东西)。 –

+0

@OrenA检查我的编辑 –

+0

我不想从应用程序代码启用或禁用我的应用程序的推送通知。我想知道用户为我的应用选择了什么。如果他为我的应用启用或禁用推送通知。 –

相关问题