2016-05-04 4 views
2

Я использую следующий плагин https://github.com/phonegap/phonegap-plugin-push с моим приложением для телефонного разговора. Я ничего не делаю в версии ioS при регистрации. На Android он работает на 100%. Я прошу помощи, чтобы увидеть, нет ли у меня чего-либо. Код ниже. У меня есть сертификаты и разрешены push-сервисы. Я создал сертификат распространения, и приложение находится в магазине Apple. В основном при запуске у меня есть функция самообслуживания и отправка регистрации через http на наш сервер, мы ничего не получаем от ioS. Мы использовали phonegapbuild для сборки версии ioS и загрузки через macincloud.com. Я прочитал несколько сообщений здесь, но никто не решает мою проблему.PhoneGap push plugin не регистрируется на ioS

<gap:plugin name="phonegap-plugin-push" source="npm" > 
    <param name="SENDER_ID" value="15971xxxxxxx" /> 
</gap:plugin> 

Моя среда Windows 10 Кордовы -v 6.0.0 PhoneGap -v 5.5.0 толчок плагин -v 1.5.3

А вот код

(function() { 
'use strict'; 
document.addEventListener("deviceready", onDeviceReady, false); 
function onDeviceReady() { 
    var samplePushApp = angular.module('samplePushApp'); 
    samplePushApp.factory('deviceService', deviceService); 

    deviceService.$inject = ['$http', '$q', '$cordovaDevice', 'messagesSqlLiteService']; 

    function deviceService($http, $q, $cordovaDevice, messagesSqlLiteService) { 
      var url = 'http://example.com/api/device/'; 
      console.log("PushNotification Registration"); 
      var push = PushNotification.init({ 
       "android": {"senderID": "15971xxxxxxx"}, 
       "ios": {"alert": "true", "badge": "true", "sound": "true"}, 
       "windows": {} }); 

      push.on('registration', function(data) { 
       console.log(data.registrationId); 
       console.log("data.registrationId"); 
       var model = $cordovaDevice.getModel(); 
       var platform = $cordovaDevice.getPlatform(); 
       var uuID = $cordovaDevice.getUUID(); 
       var version = $cordovaDevice.getVersion(); 
       var data = { "model": model, "platform": platform, "registrationId": data.registrationId, "DeviceId": uuID , "version ": version }; 
       console.log(JSON.stringify(data)); 
       $http.post(
        url, 
        JSON.stringify(data), 
        { 
         headers: { 
          'Content-Type': 'application/json', 
          'Accept': 'application/json' 
         } 
        } 
       ).success(function() { 
        console.log("Device Info submitted"); 
       }).error(function(data, status) { 
        console.error('Device Info error', status, data); 
       }); 
      }); 

      push.on('notification', function(data) { 
       navigator.notification.alert(data.title+" Message: " + data.message, function(){}, "", ""); 
       messagesSqlLiteService.insert(data); 
       location.href = '#messages'; 
      }); 

      push.on('error', function(e) { 
       console.log(e.message); 
      }); 
    } 

    // create an injector 
    var $injector = angular.injector(['samplePushApp']); 
    $injector.invoke(deviceService); 


} 
})(); 

SOLVED

Как обновить. Оказывается, в коде не было ничего плохого. Существовали две основные проблемы.

В конце концов я позаимствовал макинтош (от macincloud) и построил проект с

phonegap build ios 

Первым вопрос: Я получил эту ошибку

Build Error 
=========== 
ld: '/Users/user000516/Downloads/my-app - ioS/platforms/ios/samplePush/Plugins/phonegap-plugin-push/GCM/Libraries/libGGLCloudMessaging.a(GGLContext+CloudMessaging.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Что означает нажимной плагин не может компилировать с битовым кодом включен. Я отключил биткод в xCode, и проект был успешно выполнен. Я не уверен, была ли это причиной того, что сборка из Phonegap Build была неудачной.

Вторая проблема: другая вещь, которую я сделал с XCode, заключалась в том, чтобы получить вкладку «Возможности» и включить функцию Push Notification.

После этих изменений код работал должным образом.

Надеется, что это помогает кому-то

+0

Hi! У меня такая же проблема. Я попытался отключить биткод в файле project.pbxproj, но пока не работает. У вас есть другое решение? Спасибо заранее – eliangela

+1

Привет, eliangela, вы также используете плагин pushgart. Какую ошибку вы получаете? – alphacoder

+0

Да. Я использую плагин Phonegap Push. Но у меня нет никакой ошибки :( Мой iPhone не регистрируется и не возвращает токен – eliangela

ответ

0

не уверены, что я ДОЛЖНА ИЗМЕНИТЬ МОЙ ВОПРОС ИЛИ ДОСТАТОЧНО ОБЕСПЕЧИТЬ РЕШЕНИЕ КАК ОТВЕТ.

SOLVED

с обновлением. Оказывается, в коде не было ничего плохого. Существовали две основные проблемы.

В конце концов я позаимствовал макинтош (от macincloud) и построил проект с

phonegap build ios 

Первый вопрос: Я получил эту ошибку

Сложение Ошибка

ld: '/Users/user000516/Downloads/my-app -   ioS/platforms/ios/samplePush/Plugins/phonegap-plugin-push/GCM/Libraries/libGGLCloudMessaging.a(GGLContext+CloudMessaging.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64 

лязг: ошибка: с помощью кода выхода 1 (используйте -v для вызова вызова)

Какой m что плагин push не может компилироваться с включенным битовым кодом. Я отключил биткод в xCode, и проект был успешно выполнен.Я не уверен, была ли это причиной того, что сборка из Phonegap Build была неудачной.

Вторая проблема: другая вещь, которую я сделал с XCode, заключалась в том, чтобы получить вкладку «Возможности» и включить функцию Push Notification.

После этих изменений код работал должным образом.

Надеюсь, что это поможет кому-то