私のphonegapアプリケーションで次のプラグインhttps://github.com/phonegap/phonegap-plugin-pushを使用しています。登録イベントのioSバージョンでは何も取得していません。 Androidでは100%動作します。私は何かが欠けているかどうかを確認するために援助を要請するコードは以下の通りです。証明書があり、プッシュサービスが有効になっています。私は配布証明書を作成し、アプリケーションはApple Storeにあります。基本的に私は起動時に自己呼び出し機能を持っており、HTTP経由でサーバーに登録を送信しますが、私たちはioSから何も取得していません。私たちはphonegapbuildを使ってioSのバージョンを構築し、macincloud.comからアップロードしました。私はここにいくつかの記事を読んだが、誰も私の問題を解決しない。PhoneGapプッシュプラグインがioSに登録されていません
<gap:plugin name="phonegap-plugin-push" source="npm" >
<param name="SENDER_ID" value="15971xxxxxxx" />
</gap:plugin>
私の環境ここ のWindows 10 コルドバ-v 6.0.0 5.5.0 プッシュプラグイン-v 1.5.3
-vのPhoneGapとは、コード
(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);
}
})();
です
解説
アップデートとして。コードに間違いがないことが判明しました。 2つの主な問題がありました。
は、私は最終的に(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のビルドに失敗した理由がこれであるかどうかはわかりません。
第2の問題:私がXCodeから行ったもう1つのことは、[機能]タブを取得してプッシュ通知機能を有効にすることでした。
これらの変更後、コードは期待通りに機能しました。
・ホープこれは誰か
こんにちは!私は同じ問題を抱えています。私は私のproject.pbxprojファイルでビットコードを無効にしようとしましたが、まだ動作していません。別の解決策がありますか?あらかじめありがとうございます – eliangela
こんにちはeliangelaあなたもphonegapプッシュプラグインを使用しています。あなたはどんなエラーを出していますか? – alphacoder
はい。 Phonegap Push Pluginを使用しています。しかし、私は何のエラーもありません:( 私のiPhoneは登録されておらず、トークンを返さない – eliangela