Я разработал 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", когда я нажимаю "Уведомление" на панели уведомлений.
При нажатии уведомления на панели уведомлений запускается метод pushNotificationReceived. Это место для размещения вашего кода, связанного с полученным уведомлением. Затем вам нужно "вернуться" в область "Угловая". Поэтому используйте location.href для перенаправления на "#/" + запрошенное имя страницы (в нашем случае "сообщения"). Обратите внимание: если вы хотите использовать это уведомление на странице #/messages, вам нужно будет присвоить его какой-либо глобальной переменной.
function pushNotificationReceived(props, payload) {
...
location.href = window.location.pathname + "#/messages";
}
Почему это нужно делать с помощью AngularJS? Это также можно выполнить с помощью простого API-интерфейса jQuery, который входит в состав Worklight. В этом сценарии нет ничего особого, что даже требует AngularJS IMO.
Независимо от push-уведомления, см. В следующем примере приложения, как реализована многостраничная навигация. То же самое можно применить к тому, когда приложение push было уловлено приложением: https://www.dropbox.com/s/edn71leo5197i80/multipageexecuteplugin.zip?dl=0