-1

PushWoosh를 사용하여 iOS 앱에 푸시 알림을 구현하려고합니다. 그러나, 그들의 튜토리얼 ... 거기에 말할 수있는 좋은 방법이 없습니다. 그들의 튜토리얼은 끔찍합니다. 그냥 냄새가 난다. 그것은 단순히 최악입니다. 진정으로 원활한 통합을위한iOS에 PushWoosh 통합

  1. 당신은 단순히 프로젝트에 푸시 NotificationsSDK를 추가하는 것입니다해야 할 일은 다음과 같습니다 전체 튜토리얼 단계입니다! 처리하기 위해

  2. 당신의 Info.plist에서

  3. 알림이 파일을 사용자의 앱 Delegate.m에 다음 함수를 추가 밀어 당신의 Pushwoosh 응용 프로그램 ID 문자열 값으로 다음과 같은 주요 Pushwoosh_APPID를 추가

 #import "PushNotificationManager.h" 

    - (void) onPushAccepted:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification { 
     NSLog(@"Push notification received"); 
    } 

그게 전부 야! 진정해?

와우, 쉬웠다. 몇 가지 사소한 것들을 제외하고 .... 그것은 비어있는 방법입니다! 방법 안에는 아무것도 없습니다. 서비스에 등록하는 방법에 대한 요청이 없습니다. 어떤 사람이 이것을 올바르게 설정하기 위해 모든 것을 코딩해야하는지에 대한 경험이 있습니까? 그들의 샘플 애플리케이션조차도 App Delegate에서 이것을 참조 할만한 것이 아무것도 없다.

+0

시도해 보셨습니까? 그것들은 간단한 지침을 쓰고 실제로 작동하지 않는다면 세상에 제시 할 때 꽤 귀엽다. 다른 몇 가지 설정 단계가 필요하다는 점에 유의하십시오. SDK는 간단합니다. 그리고 예상되는 구성 코드가 부족한 샘플 앱이 있다면 그러한 코드가 실제로 필요하지 않을 수도 있다는 점을 신중하게 고려하지 않는 것입니까? – Caleb

+0

예 시도했으나 작동하지 않았습니다. 나는 그들의 셋업 페이지에서 필요한 모든 단계를 밟았지만 작동하지 않는다. 왜 작동하지 않습니까? 그들이 나열하는 코드는 필 요일뿐입니다. NSLog를 실행하는 것 이외의 다른 작업을 수행하는 AppDelegate.m에 나열된 코드에는 아무 것도 없습니다. – user717452

+0

아니요, 목록에있는 코드는 푸시 알림을 **받을 때 호출됩니다.일반적으로, 당신은 NSLog()를 자신의 코드로 바꿀 것입니다. 아마도 시작시에 호출해야하는 메서드를 호출하지 않기 때문에 알림을 등록하는 데 필요한 작업은 프레임 워크의 초기화 코드에 의해 수행됩니다. 빌드 설정을 다시 한 번 확인하고 프로젝트에 프레임 워크를 추가 한 것이 아니라 앱이 실제로 프레임 워크에 링크했는지 확인하십시오. – Caleb

답변

0

여기에 무엇이 빠졌습니까?

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; 
    pushManager = [[PushNotificationManager alloc] initWithApplicationCode:@"YOUR_APP_ID" appName:@"YOUR_APP_NAME"]; 
    pushManager.delegate = self; 
    [pushManager handlePushReceived:launchOptions]; 

그런 다음, 당신은 또한 AppDelegate.m

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken 
{ 
    [pushManager handlePushRegistration:devToken]; 
    } 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)pushMessage 
{ 
    [pushManager handlePushReceived:pushMessage]; 
} 
+1

이 SDK를 사용하여 자동으로 등록하고 모든 것을 처리 시도 Objective-C 런타임의 강력 함. 링커에 -ObjC 플래그를 전달하기 만하면됩니다 (이것은 매우 중요한 단계입니다). – shader

+0

사이트에 있던 모든 방향을 따라 가면서 작동하지 않았습니다. 귀하의 사이트에 있었던 코드를 보여주는 오래된 비디오를 발견했습니다. @shader는 그것을 연결하고 작동 시켰습니다. – user717452

+0

@ user717452 - 100 % 맞습니다. 대체 된 PushNotificationManager * pushManager = [PushNotificationManager pushManager]; 코드가있는 과 붐은 완벽하게 작동합니다. 그 전에는 등록이 없었어요. pushwoosh를 대신하여 설정 가이드에서 작동하지 않는 코드를 사용하는 것은 매우 실망 스럽습니다. – crashlog

3

SDK에 이러한 방법을 필요로하는 등록을 처리하고 모든 것이 자동으로 Objective-의 힘을 사용 : didFinishLaunchingWithOptions 방법, 당신은 추가해야 C 런타임. 링커에 -ObjC 플래그를 전달하기 만하면됩니다 (이것은 매우 중요한 단계입니다).

가장 쉬운 방법 인 것처럼 보이지만 때로는 개발자를 "어렵고 고통 스럽다"이상으로 혼란스럽게 만듭니다.

의견을 보내 주셔서 감사 드리며 더 나은 문서를 제공해 드리겠습니다.

Pushwoosh 팀은

+0

링커에 -ObjC 플래그가 있고 SDK가 절대로 장치를 등록하지 않았습니다. applicationDidFinish에 코드를 추가하고 바로 등록했습니다. – user717452

1

난 그냥 최근에로 자신을 쳤고 나는 여기에 내 결과를 추가 할 거라고 생각했다. 최소한 링커 플래그가 작동하지 않는 이유는 타겟에 설정하는 대신 프로젝트 아래에 설정했기 때문입니다. 대상으로 전환 한 후 광고 된대로 장치를 등록하기 시작했습니다.