2015-09-09 4 views
0

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

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

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

Ниже мой Broadcast код уведомления в 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'}); 
    }]); 

Примечания: Я хочу, чтобы перенаправить "/ сообщения", когда я нажимаю «Уведомление» на панели уведомлений.

ответ

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. – Priyank

+0

Затем вам необходимо указать свой код. –

+0

@ Idan Adar, пожалуйста, проверьте мой предоставленный код выше: – Priyank

0

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

function pushNotificationReceived(props, payload) { 
     ... 
     location.href = window.location.pathname + "#/messages"; 
} 
Смежные вопросы