【问题标题】:Titanium Push Notification AeroGear钛推送通知 AeroGear
【发布时间】:2015-07-12 09:12:56
【问题描述】:

我正在尝试从AeroGear 向 Titanium 应用程序发送通知。获取token后如何订阅频道?

获取令牌:

var CloudPush = require('ti.cloudpush');
var deviceToken = null;


CloudPush.retrieveDeviceToken({
    success: deviceTokenSuccess,
    error: deviceTokenError
});
function deviceTokenSuccess(e) {
    deviceToken = e.deviceToken;
}
function deviceTokenError(e) {
    alert('Failed to register for push notifications! ' + e.error);
}

CloudPush.addEventListener('callback', function (evt) {
    alert("Notification received: " + evt.payload);
});

这是原生安卓的示例代码:

package com.push.pushapplication;

import java.net.URI;
import java.net.URISyntaxException;

import org.jboss.aerogear.android.unifiedpush.PushConfig;
import org.jboss.aerogear.android.unifiedpush.PushRegistrar;
import org.jboss.aerogear.android.unifiedpush.Registrations;

import android.app.Application;

public class PushApplication extends Application {

    private final String VARIANT_ID       = "variant_id";
    private final String SECRET           = "secret";
    private final String GCM_SENDER_ID    = "1";
    private final String UNIFIED_PUSH_URL = "URL";

    private PushRegistrar registration;

    @Override
    public void onCreate() {
        super.onCreate();

        Registrations registrations = new Registrations();

        try {
            PushConfig config = new PushConfig(new URI(UNIFIED_PUSH_URL), GCM_SENDER_ID);
            config.setVariantID(VARIANT_ID);
            config.setSecret(SECRET);
            config.setAlias(MY_ALIAS);

            registration = registrations.push("unifiedpush", config);

            registration.register(getApplicationContext(), new Callback() {
                private static final long serialVersionUID = 1L;

                @Override
                public void onSuccess(Void ignore) {
                     Toast.makeText(MainActivity.this, "Registration Succeeded!",
                             Toast.LENGTH_LONG).show();
               }

               @Override
               public void onFailure(Exception exception) {
                     Log.e("MainActivity", exception.getMessage(), exception);
               }
            });

        } catch (URISyntaxException e) {
            throw new RuntimeException(e);
        }
    }
}

真的迷路了,任何帮助将不胜感激!

【问题讨论】:

    标签: javascript push-notification titanium appcelerator aerogear


    【解决方案1】:

    完成这项工作所需的钛模块由“Mads”制造,您可以在这里找到它:https://github.com/Napp/AeroGear-Push-Titanium

    【讨论】:

      【解决方案2】:

      您需要将 AeroGear 原生库封装为 titanium module。但是,如果您以前不这样做,可能会很困难。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        相关资源
        最近更新 更多