Я отправил этот ответ, поскольку этот вопрос был просмотрен больше всего, и этот код на стороне сервера был написан на VS 2015 в C # для отправки push-уведомления либо одного устройства на основе идентификатора устройства, либо темы подписки на приложение Xamarin Android
public class FCMPushNotification
{
public FCMPushNotification()
{
// TODO: Add constructor logic here
}
public bool Successful
{
get;
set;
}
public string Response
{
get;
set;
}
public Exception Error
{
get;
set;
}
public FCMPushNotification SendNotification(string _title, string _message, string _topic)
{
FCMPushNotification result = new FCMPushNotification();
try
{
result.Successful = true;
result.Error = null;
// var value = message;
var requestUri = "https://fcm.googleapis.com/fcm/send";
WebRequest webRequest = WebRequest.Create(requestUri);
webRequest.Method = "POST";
webRequest.Headers.Add(string.Format("Authorization: key={0}", YOUR_FCM_SERVER_API_KEY));
webRequest.Headers.Add(string.Format("Sender: id={0}", YOUR_FCM_SENDER_ID));
webRequest.ContentType = "application/json";
var data = new
{
// to = YOUR_FCM_DEVICE_ID, // Uncoment this if you want to test for single device
to="/topics/"+_topic, // this is for topic
notification=new
{
title=_title,
body=_message,
//icon="myicon"
}
};
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(data);
Byte[] byteArray = Encoding.UTF8.GetBytes(json);
webRequest.ContentLength = byteArray.Length;
using (Stream dataStream = webRequest.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
using (WebResponse webResponse = webRequest.GetResponse())
{
using (Stream dataStreamResponse = webResponse.GetResponseStream())
{
using (StreamReader tReader = new StreamReader(dataStreamResponse))
{
String sResponseFromServer = tReader.ReadToEnd();
result.Response = sResponseFromServer;
}
}
}
}
}
catch(Exception ex)
{
result.Successful = false;
result.Response = null;
result.Error = ex;
}
return result;
}
}
и его использование
// start sending push notification to apps
FCMPushNotification fcmPush = new FCMPushNotification();
fcmPush.SendNotification("your notificatin title", "Your body message","news");
// end push notification
Нет нет никакого способа добавить глобальный обработчик ошибок в VB6. Однако Вы не должны добавлять обработчик ошибок в каждом методе. Только действительно необходимо добавить обработчик ошибок в каждом обработчике событий. Например, Каждое событие щелчка, загрузите событие и т.д.
Также: ошибки действительно распространяют вверх: если метод X методов вызовов Y и Z, единственный обработчик ошибок в методе X будет касаться всех трех методов.
В то время как ошибки делают propogate вверх, VB6 не имеет никакого способа сделать отслеживание стека, таким образом, Вы никогда не знаете, какой метод повысил ошибку. К сожалению, при необходимости в этой информации необходимо добавить обработчик к каждому методу только для входа, где Вы были.
на ошибочном резюме затем - вид завершения, но его некоторое время. Вы могли бы хотеть искать любые протесты
Вчера я обнаружил этот инструмент:
http://www.everythingaccess.com/simplyvba-global-error-handler.htm
Это коммерческий продукт, который обеспечивает глобальную обработку ошибок в приложениях VB6 и VBA.
Он имеет свою стоимость, но отлично справляется со своей задачей. Я видел другие инструменты (бесплатные), помогающие в этом VB6 mangle, но ни один не может покрыть настоящую глобальную обработку ошибок так, как это делает "SimplyVB6 Global Error Handler for VB6".
С "SimplyVB6 Global Error Handler for VB6" не нужно менять ни одной строки существующего кода, и не нужно нумеровать строки кода (через плагин или что-то еще). Просто включите глобальную обработку ошибок (одна строка кода в главном модуле) и все готово.
"SimplyVB6 Global Error Handler for VB6":
Я никоим образом не связан с www.everythingaccess.com, просто рад, что нашел его вчера днем, я как бы снова рассматривал эту проблему, поскольку один из моих клиентов имел ошибки в нашем VB6 приложении. Я смог протестировать инструмент вчера днем, обменявшись письмами со службой поддержки www.everythingaccess.com и получив по почте ознакомительный продукт. Их веб-страница пока не позволяет загрузить ознакомительную версию продукта VB6, вам придется написать им по электронной почте, но они отвечают менее чем через час.