Unity3d iOS 에서 푸 시 (push notification) 작성

3982 단어 iOSUnity3d
송 양
본 고 는 아수라 도 에서 나 온 것 으로 상업 적 용도 로 사용 되 는 것 을 금지 하 며 전재 출처 를 밝 혀 주 십시오.  
원본 링크:http://blog.csdn.net/fansongy/article/details/43954515
width="150" height="210" frameborder="0" scrolling="no" src="http://widget.weibo.com/relationship/bulkfollow.php?language=zh_cn&uids=2080045857&wide=1&color=FFFFFF,FFFFFF,0082CB,666666&showtitle=0&showinfo=1&sense=0&verified=1&count=1&refer=http%3A%2F%2Fwww.himigame.com%2Fandroid-game%2F1521.html&dpc=1" style="font-size: 14px; font-weight: bold; border-width: 0px; margin: 0px; padding: 0px; font-family: arial, helvetica, clean, sans-serif; line-height: 16px;">
설정 인증서
우선 이것 에 따라 많은 인증 서 를 만 듭 니 다.http://www.cnblogs.com/gpwzw/archive/2012/03/31/apple_push_notification_services_tutorial_part_1-2.html
입력 한 명령 에 오류 가 있 습 니 다. 참고 하 시기 바 랍 니 다.http://www.tuicool.com/articles/vy2MbmZ
openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12
cat PushChatCert.pem PushChatKey.pem > ck.pem

인증 서 를 설정 한 후 UnityAppController.mm 에 있 는 didFinishLaunchingWithOptions 함수 추가:
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
        if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
            // use registerUserNotificationSettings
            [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
            
            [application registerForRemoteNotifications];
        } else {
            // use registerForRemoteNotifications
            [application registerForRemoteNotificationTypes:
             (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
        }
    #else
        // use registerForRemoteNotifications
        [application registerForRemoteNotificationTypes:
         (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
    #endif

이렇게 해서 등록 에 대한 설정 을 완 료 했 습 니 다. Unity3d 자체 등록 은 IOS 8 시스템 과 호 환 되 지 않 을 것 입 니 다.
	function Start() {
			NotificationServices.RegisterForRemoteNotificationTypes(RemoteNotificationType.Alert | 
										RemoteNotificationType.Badge | 
										RemoteNotificationType.Sound);
		}
	function Update () {
		if (!tokenSent) {
			var token : byte[] = NotificationServices.deviceToken;
			if (token != null) {
				// send token to a provider
				var hexToken : String = "%" + System.BitConverter.ToString(token).Replace('-', '%');
				new WWW("http://"+address+"/?token="+hexToken);
				tokenSent = true;
			}
		}
	}

Unity3d 를 사용 하면 didRegister ForRemote Notifications With DeviceToken 함수 에 추가 할 수 있 습 니 다.
NSString *tokenStr = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
tokenStr = [tokenStr stringByReplacingOccurrencesOfString:@" " withString:@""];
UnitySendMessage("Bridge", "onPushID",tokenStr.UTF8String);
      update   token      。

token 을 성공 적 으로 가 져 온 후 didRegisterForRemoteNotificationsWithDeviceToken 함 수 를 변경 하고 유 니 티 3D 에 메 시 지 를 추가 하여 결 과 를 서버 에 보 냅 니 다. 이 모든 것 을 추상 화하 고 나중에 정리 할 시간 이 있 을 것 같 습 니 다.
만약 당신 이 이 글 이 당신 에 게 도움 이 된다 고 생각한다 면, 손 쉽게 정점 을 찍 을 수 있 습 니 다. 아버지 가 되 는 것 을 좋아 하지 않 을 뿐만 아니 라, 더 많은 사람들 이 그것 을 볼 수 있 게 할 수 있 습 니 다. 

좋은 웹페이지 즐겨찾기