Я использую следующий плагин 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.
После этих изменений код работал должным образом.
Надеется, что это помогает кому-то
Hi! У меня такая же проблема. Я попытался отключить биткод в файле project.pbxproj, но пока не работает. У вас есть другое решение? Спасибо заранее – eliangela
Привет, eliangela, вы также используете плагин pushgart. Какую ошибку вы получаете? – alphacoder
Да. Я использую плагин Phonegap Push. Но у меня нет никакой ошибки :( Мой iPhone не регистрируется и не возвращает токен – eliangela