我有这个问题,我使用CloudPush模块在我的应用程序中检索令牌,并且在所有测试工作中都可以,但是当我将应用程序上传到商店并且人们下载它时,应用程序只是没有检索令牌,我每次创建一个cloudPush实例时都会注意到这个错误。
[INFO] : *** Vamos a validar
[INFO] : *** CREATE INSTANCE OF CLOUDHPUSH!!!!!!!!!
[ERROR] : TiHTTPClient: (TiHttpClient-10) [30,1458] HTTP Error (java.io.IOException): 404 : Not Found
[ERROR] : TiHTTPClient: java.io.IOException: 404 : Not Found
[ERROR] : TiHTTPClient: at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1283)
[ERROR] : TiHTTPClient: at java.lang.Thread.run(Thread.java:818)
[INFO] : *** BEFORE SINGLE CALL BACK
[INFO] : *** BEFORE retrieveDeviceToken
[INFO] : Choreographer: Skipped 46 frames! The application may be doing too much work on its main thread.
[INFO] : art: Background partial concurrent mark sweep GC freed 3578(221KB) AllocSpace objects, 0(0B) LOS objects, 24%% free, 15MB/20MB, paused 5.096ms total 51.635ms
[ERROR] : GooglePlayServicesUtil: The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
[WARN] : W/InstanceID/Rpc: Found 10076
[INFO] : Device Token: APA91bHU56CLjjEcMyroqoWH3VJFCSqBIKT2A7Amctdjiuw1Rk5a8upzfJJotfIUTh6619Wx-g7OG2rTMuceHm4r8ASz41K_bEYG1vh2q3_mwTM0ERbij4asAB4IPKIUkEZQCW9HcAFL
我的代码是:
var self = Ti.UI.createWindow({
orientationModes: [ Titanium.UI.PORTRAIT, Titanium.UI.UPSIDE_PORTRAIT],
backgroundColor: params.color6,
backgroundImage: "/images/fondo.jpg",
navBarHidden:true,
exitOnClose:true,
fullscreen:true
});
self.addEventListener("open", function(){
Ti.API.info("*** Vamos a validar");
if(Ti.Platform.osname=='android'){
Ti.API.info("*** CREATE INSTANCE OF CLOUDHPUSH!!!!!!!!!");
var CloudPush = require('ti.cloudpush');
Ti.API.info("*** BEFORE SINGLE CALL BACK");
CloudPush.setSingleCallback( true );
Ti.API.info("*** BEFORE retrieveDeviceToken");
CloudPush.retrieveDeviceToken({
success: function deviceTokenSuccess(e) {
var token = e.deviceToken;
Ti.API.info('Device Token: ' + e.deviceToken);
Utiles.RegistrarEnServidor( token );
},
error: function deviceTokenError(e) {
Ti.API.info("*** Failed to register for push");
}
});
我不知道我做错了什么...在测试所有工作正常,但游戏商店中的应用程序不起作用,令牌永远不会被检索。
Titanium Appcelerator Studio版本:4.9.1.201707200100
SDK :6.1.2GA
CloudPush :4.0.3
答案 0 :(得分:1)
为了让你的推动工作你需要注意一些事情,让我们一步一步地看到它们:
tiapp.xml
<!-- Property keys for Arrow Push (required) -->
<property name="acs-api-key-development" type="string">YOUR DEVELOPMENT API KEY HERE</property>
<property name="acs-api-key-production" type="string">YOUR PRODUCTION API KEY HERE</property>
<property name="acs-api-key" type="string">YOUR API KEY HERE</property>
我希望您在正确的插槽中添加了正确的密钥。您还需要在 tiapp.xml
中添加推送服务api URL<ti:app>
<property name="acs-push-api-url-production">https://api-prod.fooinc.com</property>
<property name="acs-push-api-url-development">https://api-dev.fooinc.com</property>
</ti:app>
用于tiapp.xml中的通知/ Badegs
<property name="acs-grouped-notification-message-development" type="string">You have $number$ unread messages.</property>
<property name="acs-grouped-notification-message-production" type="string">You have $number$ unread messages.</property>
-or-
<property name="acs-grouped-notification-message" type="string">You have $number$ unread messages.</property>
同样在multiLang的i18n
文件夹中为其设置键值
根据您提供的代码,所有内容似乎都没有问题,因此根据我的猜测,代码没有任何问题。
证书和配置文件(仅限iOS)
您需要为生产/开发创建适当的配置文件和证书,您还需要创建.PEM
文件,以帮助您发送/接收特定设备和应用程序的推送通知,这是设备注册的位置作品。因此,您需要确保已正确创建证书。您可以从以下链接查看创建证书和配置文件的过程:
https://www.raywenderlich.com/156966/push-notifications-tutorial-getting-started
我希望这可以帮助您解决问题。如果您在此之后还有其他问题,请告诉我。
祝你好运和干杯
Ashish Sebastian
答案 1 :(得分:0)
我用模块解决了问题: PushClient
如果有人遇到同样的问题,我会把它留在这里。