Вы можете сделать это с помощью запроса Volly Jsonobject ....
выполните следующие действия:
1 скопируйте старый ключ сервера и сохраните его как Legacy_SERVER_KEY
Legacy Server key
blockquote>вы можете видеть на картинке, как получить
2 Вам нужна зависимость от Volley
compile ' com.mcxiaoke.volley: library: 1.0.19 '
blockquote>Код для отправки Push: -
private void sendFCMPush() { String Legacy_SERVER_KEY = YOUR_Legacy_SERVER_KEY; String msg = "this is test message,.,,.,."; String title = "my title"; String token = FCM_RECEIVER_TOKEN; JSONObject obj = null; JSONObject objData = null; JSONObject dataobjData = null; try { obj = new JSONObject(); objData = new JSONObject(); objData.put("body", msg); objData.put("title", title); objData.put("sound", "default"); objData.put("icon", "icon_name"); // icon_name image must be there in drawable objData.put("tag", token); objData.put("priority", "high"); dataobjData = new JSONObject(); dataobjData.put("text", msg); dataobjData.put("title", title); obj.put("to", token); //obj.put("priority", "high"); obj.put("notification", objData); obj.put("data", dataobjData); Log.e("!_@rj@_@@_PASS:>", obj.toString()); } catch (JSONException e) { e.printStackTrace(); } JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST, Constants.FCM_PUSH_URL, obj, new Response.Listener
() { @Override public void onResponse(JSONObject response) { Log.e("!_@@_SUCESS", response + ""); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e("!_@@_Errors--", error + ""); } }) { @Override public Map getHeaders() throws AuthFailureError { Map params = new HashMap (); params.put("Authorization", "key=" + Legacy_SERVER_KEY); params.put("Content-Type", "application/json"); return params; } }; RequestQueue requestQueue = Volley.newRequestQueue(this); int socketTimeout = 1000 * 60;// 60 seconds RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT); jsObjRequest.setRetryPolicy(policy); requestQueue.add(jsObjRequest); } Просто позвонить sendFCMPush ();
Платформа MVC ASP.NET дала бы Вам намного более знакомое разделение. Поскольку нет никакого состояния отображения, и т.д. в Платформе MVC, Вы не должны будете волноваться о JavaScript, выводимом в Ваши страницы. Единственные вызовы JavaScript, которые Вы видите, будут, которые Вы вручную добавляете.
Можно, по большей части, разделить HTML / CSS / JS как Вы был бы в другой платформе.
В зависимости от механизма представления Вы собираетесь использовать. да.
Но можно легко проверить это путем рассмотрения источника страницы для переполнения стека. Это не сад дзэн, но это довольно чисто.
Еще некоторое разъяснение:
Рендеринг страниц сделан механизмом представления. Можно использовать стандартный механизм представления или существующие как nVelocity или Гитов, точно так же, как с монорельсовой дорогой. http://www.chadmyers.com/Blog/archive/2007/11/28/testing-scottgu-alternate-view-engines-with-asp.net-mvc-nvelocity.aspx
Поскольку механизм представления ответственен за создание HTML, что выходит, зависит от Вашего выбора. Но большинство механизмов представления лучше в этом отношении, чем ванильный ASP.NET
@Wrestlevania сказан:
любые рекомендации для методов кодирования.NET, библиотек, и т.д. какая сила была бы действительно полезна.
Я пытаюсь поддержать высокий уровень разделения при кодировании в ASP.NET. Я нахожу, что, если я избегаю средств управления asp и палки как можно больше с основными элементами HTML, я могу избежать любой ситуации, где ASP.NET был бы склонен ввести дополнительный CSS или JS в мою страницу. Пример, используйте промежуток вместо asp:literal, кнопку вместо asp:button, и т.д.
Единственное управление ASP, которое я использую, является повторителем, который используется для составления таблицы. Любая функциональность, в которой я нуждаюсь, который был бы подобен управлению asp, я или реализовать меня в JavaScript или использовать платформу как jQuery.
Asp. Сетевой MVC поможет Вам разделить html/css/js, в котором он представит меньше функций, которые препятствовали бы тому, чтобы Вы разделили их.
Например, помощники HTML обычно возвращаются просто что: HTML. От той точки Вы свободны принять решение сохранить всю информацию о стилях связанной только атрибутами класса.
Рассмотрите также изучение методов, которые Вы обычно применяете с библиотекой как jQuery. Это - превосходный пример того, как сохранить функциональность в виде сценария полностью в Вашем js и из Вашего HTML путем применения поведений обработки событий к элементам на загрузке страницы на основе вещей как тип элемента, класс и идентификатор.