Как перенаправить определенную страницу из PushNotification в рабочий свет + angularJS

0

Я разработал push-уведомление в среде android/ios с подсветкой + AngularJs, и я получаю успешное уведомление на обеих платформах.

Мое приложение имеет несколько HTML-страниц. всякий раз, когда я нажимаю свое полученное уведомление из панели уведомлений, он перенаправляется на страницу index.html по умолчанию, но я хочу, чтобы он перенаправлял любую другую (HTML) внутреннюю страницу. Я также следую некоторой LINK, связанной с этой проблемой, но она показывает, есть ли у нас код в одном файле html. но в моем случае у меня есть несколько HTML, и я не знаю, как реализовать этот сценарий.

Я знаю, что многие из вас нашли это как повторяющийся вопрос, но я думаю, что этот сценарий - это нечто другое.

Ниже приведен мой код уведомления о вещании в main.js

function wlCommonInit(){

angular.element(document).ready(function() {
    // Boot up
    angular.bootstrap(document, ["myMobile"]);
}); 
WL.Client.connect({onSuccess: connectSuccess, onFailure: connectFailure});
}
function connectSuccess() {
WL.Logger.debug ("Successfully connected to MobileFirst Server.");
}

function connectFailure() {
WL.Logger.debug ("Failed connecting to MobileFirst Server.");


//1st snippet
WL.SimpleDialog.show("Push Notifications", "Failed connecting to MobileFirst Server. Try again later.", 
        [{
            text : 'Reload',
            handler : WL.Client.reloadapp
        },
        {
            text: 'Close',
            handler : function() {}
        }]
    );
    }

 //2nd snippet. For the 3rd one copy the adapter
 //------------------------------- Handle received notification ---------------------------------------
 WL.Client.Push.onMessage = function (props, payload) {
 WL.SimpleDialog.show("Tag Notifications", "Provider notification data: " + JSON.stringify(props), [ {
    text : 'Close',
    handler : function() {
    WL.SimpleDialog.show("Brodcast Notifications", "Application notification data: " + JSON.stringify(payload), [ {
            text : 'Close',
            handler : function() {}
          }]);      
    }
}]);
};

Ниже код мой angularJS route.js:

angular.module('MyMobile').
config(['$routeProvider', function($routeProvider) {
    $routeProvider.
        when("/login", {
            templateUrl: "partials/login.html", 
            controller: "loginController"}
        ).
        when("/home/:activePanelId", {
            templateUrl: "partials/home.html", 
            controller: "homeController"}
        ).
        when("/activity", {
            templateUrl: "partials/home.html", 
            controller: "homeController",
            activetab: "activity"}
        ).
        when("/messages", {
            templateUrl: "partials/home.html", 
            controller: "homeController",
            activetab: "messages"}
        ).
        when("/membership", {
            templateUrl: "partials/membership.html", 
            controller: "membershipController"}
        ).
        when("/documentrequest", {
            templateUrl: "partials/documentRequest.html"/*, 
            controller: "documentRequestController"*/}
        ).
        when("/findprovider", {
            templateUrl: "partials/findProvider.html", 
            controller: "findProviderController"}
        ).
        when("/benefitsearch", {
            templateUrl: "partials/benefitSearch.html", 
            controller: "benefitController"}
        ).
        when("/benefitsearchresults", {
            templateUrl: "partials/benefitSearchResults.html", 
            controller: "benefitController"}
        ).
        when("/medicine", {
            templateUrl: "partials/medicine.html", 
            controller: "medicineController"}
        ).
        when("/ehr", {
            templateUrl: "partials/ehr.html", 
            controller: "ehrController"}
        ).
        when("/preauthorization", {
            templateUrl: "partials/preAuthorization.html", 
            controller: "preAuthorizationController"}
        ).
        otherwise({redirectTo: '/login'});
    }]);

Примечание. Я хочу перенаправить на "/messages", когда я нажимаю "Уведомление" на панели уведомлений.

Теги:
ibm-mobilefirst

2 ответа

0

При нажатии уведомления на панели уведомлений запускается метод pushNotificationReceived. Это место для размещения вашего кода, связанного с полученным уведомлением. Затем вам нужно "вернуться" в область "Угловая". Поэтому используйте location.href для перенаправления на "#/" + запрошенное имя страницы (в нашем случае "сообщения"). Обратите внимание: если вы хотите использовать это уведомление на странице #/messages, вам нужно будет присвоить его какой-либо глобальной переменной.

function pushNotificationReceived(props, payload) {
      ...
      location.href = window.location.pathname + "#/messages";
}
0

Почему это нужно делать с помощью AngularJS? Это также можно выполнить с помощью простого API-интерфейса jQuery, который входит в состав Worklight. В этом сценарии нет ничего особого, что даже требует AngularJS IMO.

Независимо от push-уведомления, см. В следующем примере приложения, как реализована многостраничная навигация. То же самое можно применить к тому, когда приложение push было уловлено приложением: https://www.dropbox.com/s/edn71leo5197i80/multipageexecuteplugin.zip?dl=0

  • 0
    На самом деле все мое приложение в Angular JS. возможно мое push-уведомление написано только в javascript. Также я не могу использовать ваше решение ($ ('id'). load ("myPage.html")), потому что мое приложение контролируется маршрутом и контроллером angularJS.
  • 0
    Вы должны предоставить свой код тогда.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню