Отправка пуш уведомлений нескольким приложениям
Есть у меня сервер который может отправлять пуши нескольким разным приложениям. Как правильно регистрировать ApiKey под каждое приложение или можно использовать один ключ ?
Есть у меня сервер который может отправлять пуши нескольким разным приложениям. Как правильно регистрировать ApiKey под каждое приложение или можно использовать один ключ ?
Возможно ли в css выбрать предыдущий элемент? Например есть конструкция
<div class="container">
<div class="el1"></div>
<div class="el2 ativated"></div>
</div>
Нужно выбрать el1 если у el2 есть класс activated.
Пытаюсь обернуть содержимое меню ионика обернуть в директиву, почему то не пробрасывается scope. В чем может быть причина?
<ion-side-menu side="right">
<ion-content>
<ion-list>
<my-directive>
{{test}}
<ion-item menu-close >
<i class="icon ion-ios-home"></i> Page1
</ion-item>
</my-directive>
</ion-list>
</ion-content>
</ion-side-menu>
.directive('myDirective', [
function () {
function link(scope, element, attrs) {
scope.test = 'hello';
}
return {
transclude: true,
replace: true,
restrict: 'E',
scope: {},
template: '<ng-transclude></ng-transclude>',
link: link
};
}]);
hello не отображается. Если положить в rootScope все нормально
Пишу приложение на ионике, для пуш нотификаций использую phonegap-plugin-push. Если завершаю приложение через force stop пуш нотификации перестают приходить. Возможно ли это как то обойти? Телеграм после завершения продолжает принимать каким то образом сообщения.
Использую для отправки com.google.gcm:gcm-server:1.0.0 Для отправки использую следующий код:
Message message = new Message.Builder()
.addData("title", notification.getTitle())
.addData("message", notification.getMessage())
.build();
try {
Result result = sender.send(message, recipient, RETRIES_COUNT);
LOG.debug("Результат отправки : " + result);
if (result.getSuccess() != null && result.getSuccess() > 0) {
return true;
}
LOG.error("При отправке сообщения возникла ошибка: " + result.getErrorCodeName());
return false;
} catch (Exception e) {
LOG.error(e);
return false;
}
Все до сегодняшнего дня работало нормально. Сегодня отправка выключилась. Кода ошибки никакого нет. Результат отправки : [ messageId=0:1461843072713443%a660e5cdf9fd7ecd ]
Что это может быть вообще? Ограничения на Ip с ключа убрал, все равно не отправляет
Возможно ли проверить доступен ли сервер на который должен уйти запрос из ресурса?
Подскажите как создать Destktop shortcut для muCommander в Ubuntu
Пробую так:
[Desktop Entry]
Name=muCommander
Comment=
GenericName=
Keywords=muCommander
Exec=/usr/bin/mucommander
Terminal=false
Type=Application
Icon=/usr/share/mucommander/mucommander.png
Path=/usr/share/mucommander/
Categories=
NoDisplay=false
из консоли /usr/bin/mucommander запускает нормально, из ланчера unity ничего не происходит
Нашел эту https://habrahabr.ru/company/mailru/blog/260841/ статью. Зарегистрировал 3 ключа на google cloud (server, android, ios), поставил приложение из их этого http://1-dot-sigma-freedom-752.appspot.com/gcmpusher.jsp примера.
С их ключом api пуши доходят. С моим серверным ключем приходит 401 ошибка, с андроидным/иосным MismatchSenderId.
GCM HTTP status: 200
GCM response body: {"multicast_id":6931692131601896500,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}
Что я делаю не так? Приложение как то биндится на ключ api?
Подскажите, как контакт, гугл и прочие формируют Id устройства для добавления в доверенные для 2х факторной аутентификации?
Подскажите нормальный смс-шлюз кроме амазона
Есть у меня геррит c H2 базой и авторизацией по openId, решил перейти на ldap авторизацию, теперь при заходе получаю ошибку Cannot assign user name «username» to account 1000009; name already in use. Есть ли способ старый аккаунт на ldap забиндить?
String values = "[some json array]"
Foo foo = new Foo();
foo.setValues(new Gson().fromJson(values, new TypeToken<List<Bar>>() {}.getType()));
Как он понимает что лист надо заполнить Bar'ами если generic'и после компиляции превращаются в Object ? И почему не работает такая конструкция?
foo.setValues(readJsonField(values));
public static <T> T readJsonField(String field) {
if (field == null) {
return null;
}
return (T) new Gson().fromJson(field, new TypeToken<T>() {}.getType());
}
Есть у меня объект, содержащий UUID в качестве поля, который передается в виде JSON на rest сервис и автоматом парсится MOXy. В итоге UUID поле он не знает и как парсить и сетит null. Есть ли возможность задать ему парсер для UUID?
На сколько правильно делать авторизацию для рест сервисов через сервлет (HttpServletRequest.login)? И если не правильно, то как правильно?
Как получить Url страницы на которую пытался зайти юзер, если страница была в security зоне и его перебросило на страницу авторизации?
Есть ли возможность запустить логгирование в идее для ionic приложения под андроид через adb ?
Сделал такую вот страницу + скрипт: index.html:
<html ng-app="app">
<head>
<script src="angular.js"></script>
<script src="angular-route.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-view></div>
</body>
</html>
script.js:
var app = angular.module('app', ['ngRoute']);
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateUrl: 'route.html',
controller: 'RouteController',
}).otherwise('/');
}]);
app.controller('RouteController', ['$scope', function($scope) {
$scope.hello='world';
}]);
app.controller('IncController', ['$scope', function($scope) {
$scope.field = '';
$scope.test = function() {
console.log('test=' + $scope.field);
}
}]);
route.html:
<div>
hello world
<div>{{hello}}</div>
<ng-include src="'including.html'"
ng-controller="IncController"></ng-include>
</div>
including.html:
<input type='text' ng-model='field'/>
<input type='button' ng-click='test()'/>
Нажимаю на кнопку метод test() дергается, test= на консоль выводится, а поле field всегда пустое. При этом если сделать route на including.html все работает.
Что я делаю не так?
Есть таблица messages id, owner, author, message, chat_id, message_date
вопрос: как вывести последнее сообщение для каждого chat_id?
по логике как то так :
SELECT MAX(message_date), id, owner, author, message, chat_id FROM messages WHERE owner = ? GROUP BY chat_id
Сделал мультимодульный проект, web - собирается в war, dist должен собирать zip с томкатом и этим варом в webapps, в итоге вместо варника он копирует туда зависимости модуля. Как это можно пофиксить ?
dist:
apply plugin: 'java'
group 'com.example.server'
version '1.0-SNAPSHOT'
ext {
tomcatVersion = '8.0.26'
}
configurations {
tomcatDist
tomcatWeb
tomcatDependency
}
dependencies {
tomcatDist "org.apache.tomcat:tomcat:${tomcatVersion}@zip"
tomcatDependency "org.glassfish:javax.faces:2.1.7-06";
tomcatWeb project(":web");
}
task tomcatDistCopy(type: Copy) {
configurations.tomcatDist.findAll { distFile ->
from zipTree(distFile)
}
into "$buildDir/dev/tomcat"
[ 'bin', 'conf', 'lib' ].each { subDir ->
include "apache-tomcat-${tomcatVersion}/${subDir}/**"
}
eachFile { details ->
details.path = details.path.replaceAll('([^/]+)/(.*)', { "${it[2]}" })
}
includeEmptyDirs = false
}
task tomcatDependencyCopy(type: Copy, dependsOn: tomcatDistCopy) {
configurations.tomcatDependency.findAll { dependency ->
from dependency
}
into "$buildDir/dev/tomcat/lib/common"
}
task webDependencyCopy(type: Copy, dependsOn: tomcatDistCopy) {
from configurations.tomcatWeb
into "$buildDir/dev/tomcat/webapps"
}
task tomcatAssemble(type: Copy ) {
}
tomcatAssemble.dependsOn tomcatDependencyCopy, webDependencyCopy
build.dependsOn(dist)
web:
apply plugin: 'java'
apply plugin: 'war'
group 'com.example.server'
version '1.0-SNAPSHOT'
dependencies {
compile "org.glassfish:javax.faces:2.1.7-06"
compile "org.apache.tomcat:tomcat-servlet-api:8.0.26"
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
}
}
war {
from 'src/main/webapp'
webXml = file('src/main/web.xml')
}
Сделал ресурс для получения общего количества записей с сервера, после получения ангулар цифру загоняет в массив вне зависимости от значения параметра isArray. Есть нормальный способ это побороть или только через костыль?
var resource = angular.module('resource');
resource.factory('RecordResource', ['$resource',
function($resource) {
return $resource('/rest/records/:id', {}, {
count:{method:'GET',
url: "/rest/records//count",
isArray:false,
responseType: 'text'}
}
}]);
при 20 записях получается массив [2,0]
| ← предыдущие | следующие → |