Explorar el Código

Windows platform does not use hooks anymore

Sebastián Katzer hace 10 años
padre
commit
6d85bd69b7

+ 1 - 0
CHANGELOG.md

@@ -7,6 +7,7 @@ Please also read the [Upgrade Guide](https://github.com/katzer/cordova-plugin-lo
 - New `color` attribute for Android (Thanks to @Eusebius1920)
 - New `quarter` intervall for iOS & Android
 - Made small icon optional (Android)
+- Windows platform does not use hooks anymore
 - Fixed #588 crash when basename & extension can't be extracted (Android)
 - Fixed #732 loop between update and trigger (Android)
 - Fixed #710 crash due to >500 notifications (Android)

+ 0 - 6
README.md

@@ -2,12 +2,6 @@
 [![npm version](https://badge.fury.io/js/de.appplant.cordova.plugin.local-notification.svg)](http://badge.fury.io/js/de.appplant.cordova.plugin.local-notification)
 [![PayPayl donate button](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=L3HKQCD9UA35A "Donate once-off to this project using Paypal")
 
-#### :bangbang: Please vote for these cordova-windows issues :bangbang:
-1. https://issues.apache.org/jira/browse/CB-8674 _(Missing launch arguments)_
-2. https://issues.apache.org/jira/browse/CB-8946 _(Missing ToastCapable flag)_
-
-Thanks a lot!
-
 Cordova Local-Notification Plugin
 =================================
 

+ 4 - 8
plugin.xml

@@ -203,6 +203,10 @@
     <!-- windows -->
     <platform name="windows">
 
+        <config-file target="config.xml" parent="/*" >
+            <preference name="WindowsToastCapable" value="true" />
+        </config-file>
+
         <js-module src="src/windows/LocalNotificationProxy.js" name="LocalNotification.Proxy" >
             <merges target="" />
         </js-module>
@@ -215,14 +219,6 @@
             <merges target="" />
         </js-module>
 
-        <!-- Platform Hooks -->
-        <hook type="after_platform_add" src="scripts/windows/setToastCapable.js" />
-        <hook type="after_plugin_install" src="scripts/windows/setToastCapable.js" />
-
-        <hook type="after_platform_add" src="scripts/windows/broadcastActivateEvent.js" />
-        <hook type="after_plugin_install" src="scripts/windows/broadcastActivateEvent.js" />
-        <hook type="after_prepare" src="scripts/windows/broadcastActivateEvent.js" />
-
     </platform>
 
 </plugin>

+ 0 - 80
scripts/windows/broadcastActivateEvent.js

@@ -1,80 +0,0 @@
-#!/usr/bin/env node
-
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-
-// Includes a snippet into the cordova-core js file
-// to fire the activated event after device is ready
-
-
-var fs = require('fs'),
-    rootdir = process.argv[2];
-
-if (!rootdir)
-    return;
-
-/**
- * Replaces a string with another one in a file.
- *
- * @param {String} path
- *      Absolute or relative file path from cordova root project.
- * @param {String} to_replace
- *      The string to replace.
- * @param {String}
- *      The string to replace with.
- */
-function replace (filename, to_replace, replace_with) {
-    var data = fs.readFileSync(filename, 'utf8'),
-        result;
-
-    if (data.indexOf(replace_with) > -1)
-        return;
-
-    result = data.replace(to_replace, replace_with);
-    fs.writeFileSync(filename, result, 'utf8');
-}
-
-// Fires the activated event again after device is ready
-var snippet =
-    "var activatedHandler = function (args) {" +
-        "channel.deviceready.subscribe(function () {" +
-            "app.queueEvent(args);" +
-        "});" +
-    "};" +
-    "app.addEventListener('activated', activatedHandler, false);" +
-    "document.addEventListener('deviceready', function () {" +
-        "app.removeEventListener('activated', activatedHandler);" +
-    "}, false);\n" +
-    "            app.start();";
-
-// Path to cordova-core js files where the snippet needs to be included
-var files = [
-    'platforms/windows/www/cordova.js',
-    'platforms/windows/platform_www/cordova.js'
-];
-
-// Includes the snippet before app.start() is called
-for (var i = 0; i < files.length; i++) {
-    replace(files[i], 'app.start();', snippet);
-}

+ 0 - 63
scripts/windows/setToastCapable.js

@@ -1,63 +0,0 @@
-#!/usr/bin/env node
-
-/*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
- *
- * @APPPLANT_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apache License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://opensource.org/licenses/Apache-2.0/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-
-// Hook sets ToastCapable on true to enable local-notifications
-
-
-var fs = require('fs'),
-    rootdir = process.argv[2];
-
-if (!rootdir)
-    return;
-
-/**
- * Replaces a string with another one in a file.
- *
- * @param {String} path
- *      Absolute or relative file path from cordova root project.
- * @param {String} to_replace
- *      The string to replace.
- * @param {String}
- *      The string to replace with.
- */
-function replace (filename, to_replace, replace_with) {
-    var data = fs.readFileSync(filename, 'utf8'),
-        result;
-
-    if (data.indexOf('ToastCapable') > -1)
-        return;
-
-    result = data.replace(new RegExp(to_replace, 'g'), replace_with);
-
-    fs.writeFileSync(filename, result, 'utf8');
-}
-
-// Set ToastCapable for Windows Phone
-replace('platforms/windows/package.phone.appxmanifest', '<m3:VisualElements', '<m3:VisualElements ToastCapable="true"');
-// Set ToastCapable for Windows 8.1
-replace('platforms/windows/package.windows.appxmanifest', '<m2:VisualElements', '<m2:VisualElements ToastCapable="true"');
-// Set ToastCapable for Windows 8.0
-replace('platforms/windows/package.windows80.appxmanifest', '<VisualElements', '<VisualElements ToastCapable="true"');

+ 1 - 3
src/windows/LocalNotificationCore.js

@@ -103,9 +103,7 @@ proxy.core = {
         toast.id = options.id;
         toast.tag = 'Toast' + toast.id;
 
-        Notifications.ToastNotificationManager
-            .createToastNotifier()
-            .addToSchedule(toast);
+        this.getToastNotifier().addToSchedule(toast);
     },
 
     /**

+ 2 - 2
src/windows/LocalNotificationUtil.js

@@ -412,8 +412,8 @@ channel.onCordovaReady.subscribe(function () {
 });
 
 // Handle onclick event
-WinJS.Application.addEventListener('activated', function (args) {
-    var id = args.detail.arguments,
+document.addEventListener('activated', function (e) {
+    var id = e.args,
         notification = exports.getAll([id])[0];
 
     if (!notification)