Как реализовать push-уведомление с помощью oracle maf

Я только что попробовал пример кода, предоставленный oracle maf для push-уведомлений. Я могу зарегистрироваться через него, но когда я передаю сообщение, я не получил никакого сообщения. это серверный код. Можем ли мы объяснить, пожалуйста, как зарегистрироваться в gcm. Я зарегистрировался там, но я сомневаюсь в этом, и есть ли способ увидеть информацию о полученном сообщении в gcm

  <af:commandButton actionListener="#{bindings.Execute.execute}"
                           text="Refresh"
                           disabled="#{!bindings.Execute.enabled}"
                           id="ctb1" immediate="true"/>
  <af:table value="#{bindings.RegistrationsView1.collectionModel}"
            var="row"
            rows="#{bindings.RegistrationsView1.rangeSize}"
            emptyText="#{bindings.RegistrationsView1.viewable ? 'No data to display.' : 'Access Denied.'}"
            fetchSize="#{bindings.RegistrationsView1.rangeSize}"
            rowBandingInterval="0"
            selectedRowKeys="#{bindings.RegistrationsView1.collectionModel.selectedRow}"
            selectionListener="#{bindings.RegistrationsView1.collectionModel.makeCurrent}"
            rowSelection="single" id="t1"
            partialTriggers="::ctb1" width="633" inlineStyle="height:189px;">
    <af:column sortProperty="DeviceToken" sortable="false"
               headerText="Device Token" id="c1" width="100">
      <af:outputText value="#{row.DeviceToken}" id="ot5"/>
    </af:column>
    <af:column sortProperty="DeviceModel" sortable="false"
               headerText="Device Model" id="c3" width="100">
      <af:outputText value="#{row.DeviceModel}" id="ot4"/>
    </af:column>
    <af:column sortProperty="ApplicationId" sortable="false"
               headerText="Application" id="c5" width="205">
      <af:outputText value="#{row.ApplicationId}" id="ot1"/>
    </af:column>
    <af:column sortProperty="UserId" sortable="false"
               headerText="User Id" id="c2" width="-5">
      <af:outputText value="#{row.UserId}" id="ot3"/>
    </af:column>
    <af:column sortProperty="SenderId" sortable="false"
               headerText="Sender Id" id="c4" width="100">
      <af:outputText value="#{row.SenderId}" id="ot2"/>
    </af:column>
  </af:table>
</af:panelGroupLayout>
<af:panelGroupLayout layout="scroll"
                     xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
                     id="pgl1">
  <af:panelFormLayout id="pfl1" partialTriggers="t1">
    <af:panelLabelAndMessage label="#{bindings.DeviceToken.hints.label}"
                             id="plam4">
      <af:outputText value="#{bindings.DeviceToken.inputValue}"
                     id="ot7"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.DeviceModel.hints.label}"
                             id="plam2">
      <af:outputText value="#{bindings.DeviceModel.inputValue}"
                     id="ot6"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.UserId.hints.label}"
                             id="plam1">
      <af:outputText value="#{bindings.UserId.inputValue}"
                     id="ot9"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.ApplicationId.hints.label}"
                             id="plam3">
      <af:outputText value="#{bindings.ApplicationId.inputValue}"
                     id="ot8"/>
    </af:panelLabelAndMessage>
    <af:inputText label="Message" id="it1"
                  value="#{MessageBean.message}"/>
  </af:panelFormLayout>
  <af:commandButton text="Push Message" id="cb1" 
             actionListener="#{MessageBean.pushMessage}"/>
</af:panelGroupLayout>

person Janaki Narayanan    schedule 11.02.2016    source источник
comment
Добавьте соответствующий код к вашему вопросу.   -  person Natalie Hedström    schedule 11.02.2016
comment
Вы добавили код ADF, какое отношение имеет к push и MAF?   -  person User404    schedule 12.02.2016
comment
Расширение MAF 2.1.1 предоставляет два примера приложений — PushDemo, которое демонстрирует, как получать push-уведомления в приложении MAF, и PushServer, которое демонстрирует, как отправлять push-уведомления в приложение MAF. Приведенный выше код является кодом push-сервера.   -  person Janaki Narayanan    schedule 12.02.2016
comment
Я направил этот веб-сайт для push-уведомлений в maf: blogs.oracle.com/mobile/entry/   -  person Janaki Narayanan    schedule 12.02.2016
comment
Пытаетесь получить PushNotification через Oracle-MCS? Если да, я могу вам помочь.   -  person Arj 1411    schedule 06.04.2016
comment
Спасибо!! До сих пор не пробовал push-уведомления с mcs   -  person Janaki Narayanan    schedule 06.04.2016
comment
Вы добавили какой-либо код в класс LifeCycleImplementation?   -  person Arj 1411    schedule 07.04.2016
comment
Метод onMesssage не вызывается, когда я отправляю сообщение через сервер. Не могли бы вы мне помочь?   -  person Janaki Narayanan    schedule 31.05.2016


Ответы (2)


Прежде всего, у вас будет два приложения. Серверное приложение (PushServer) и мобильное приложение, реализованное с помощью платформы MAF (PushDemo). Я полагаю, вы нашли их после того, как установили модуль MAF в JDeveloper.

Во-вторых, чтобы зарегистрироваться на сервере Google Cloud Messaging, перейдите по адресу эта ссылка , напишите имя своего приложения (по умолчанию PushService ) и имя своего пакета Android (по умолчанию для примера приложения это com.oraclecorp.internal.maf.PushSample ). Вы получите КЛЮЧ GOOGLE API, который вам нужно будет установить в приложении PushServer, в классе MessageBean (это константа, называемая GOOGLE_APIKEY), и senderId, который вы запишете в мобильное приложение. (в adf-config.xml — это свойство называется gcmSenderId).

Вам нужно будет запустить серверный проект на общедоступном сервере (возможно, Weblogic) и заставить ваше мобильное приложение вызывать URL-адрес, где находится ваш сервлет, например: http://www.something.com/PushService-ViewController-context-root/registrations ), то в проекте вашего мобильного приложения в файле connection.xml у вас есть два поля, которые вы должны отредактировать:

<urlconnection name="SyncService_base_connection" url="http://www.something.com"/>

и

 <urlconnection name="PushServiceConn" url="http://www.something.com/PushService-ViewController-context-root/registrations"/>

Вы запускаете приложение на устройстве, затем проверяете приложение, если вы зарегистрированы в базе данных. Затем, если вы нажмете push для своего устройства, вы должны получать эти уведомления прямо на устройстве Android.

Что касается процесса APNS, все немного сложнее, но руководство поможет вам в этом.

Спасибо,
Разван

person Razvan N    schedule 15.03.2016
comment
Я пробовал описанные выше шаги, но до сих пор не получил уведомлений. Но пока я отправляю сообщение с сервера, оно показывает некоторое предупреждающее сообщение. - person Janaki Narayanan; 30.03.2016
comment
Метод onMesssage не вызывается, когда я отправляю сообщение через сервер. Помогите, пожалуйста. - person Janaki Narayanan; 31.05.2016
comment
@Janak Не могли бы вы опубликовать / обновить предупреждающее сообщение? а также можете ли вы обновить, если вы решили проблему? - person Wanna Coffee; 14.12.2016

Вышеупомянутая проблема решена после включения JSSE на всех управляемых серверах, включая сервер администратора (на сервере weblogic).

person Janaki Narayanan    schedule 21.12.2016