From f14aeaef0c804f3d50a44651406bb0ceb42477ca Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 26 May 2015 18:52:54 -0300 Subject: [PATCH] Runs Copay as native desktop app --- package.json | 13 ++++++++++++- src/js/services/isNodeWebkit.js | 17 +++++++++++++++++ src/js/services/localStorage.js | 10 +++++----- src/js/services/logHeader.js | 4 ++-- 4 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 src/js/services/isNodeWebkit.js diff --git a/package.json b/package.json index 17d491125..5d83e1733 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,18 @@ "bitcoin", "bitcore" ], - "main": "app.js", + "main": "public/index.html", + "window": { + "toolbar": false, + "resizable": false, + "width": 400, + "height": 600, + "min_width": 400, + "min_height": 600, + "max_width": 400, + "max_height": 600, + "position": "center" + }, "id": "jid1-x7bV5evAaI1P9Q", "homepage": "https://github.com/bitpay/copay", "license": "MIT", diff --git a/src/js/services/isNodeWebkit.js b/src/js/services/isNodeWebkit.js new file mode 100644 index 000000000..e53284072 --- /dev/null +++ b/src/js/services/isNodeWebkit.js @@ -0,0 +1,17 @@ +'use strict'; + +// Detect node-webkit +var isNode = (typeof process !== "undefined" && typeof require !== "undefined"); +var isNodeWebkit = false; + +//Is this Node.js? +if(isNode) { + //If so, test for Node-Webkit + try { + isNodeWebkit = (typeof require('nw.gui') !== "undefined"); + } catch(e) { + isNodeWebkit = false; + } +} + +angular.module('copayApp.services').value('isNodeWebkit', isNodeWebkit); diff --git a/src/js/services/localStorage.js b/src/js/services/localStorage.js index 1d8c55b11..1008d997c 100644 --- a/src/js/services/localStorage.js +++ b/src/js/services/localStorage.js @@ -1,11 +1,11 @@ 'use strict'; angular.module('copayApp.services') - .factory('localStorageService', function(isChromeApp, $timeout) { + .factory('localStorageService', function(isChromeApp, isNodeWebkit, $timeout) { var root = {}; var ls = ((typeof window.localStorage !== "undefined") ? window.localStorage : null); - if (isChromeApp && !ls) { + if (isChromeApp && !isNodeWebkit && !ls) { ls = localStorage = chrome.storage.local; window.localStorage = chrome.storage.local; } @@ -14,7 +14,7 @@ angular.module('copayApp.services') throw new Error('localstorage not available'); root.get = function(k, cb) { - if (isChromeApp) { + if (isChromeApp && !isNodeWebkit) { chrome.storage.local.get(k, function(data) { //TODO check for errors @@ -40,7 +40,7 @@ angular.module('copayApp.services') }; root.set = function(k, v, cb) { - if (isChromeApp) { + if (isChromeApp && !isNodeWebkit) { var obj = {}; obj[k] = v; @@ -53,7 +53,7 @@ angular.module('copayApp.services') }; root.remove = function(k, cb) { - if (isChromeApp) { + if (isChromeApp && !isNodeWebkit) { chrome.storage.local.remove(k, cb); } else { ls.removeItem(k); diff --git a/src/js/services/logHeader.js b/src/js/services/logHeader.js index 698c442a2..8ba8034be 100644 --- a/src/js/services/logHeader.js +++ b/src/js/services/logHeader.js @@ -1,8 +1,8 @@ 'use strict'; angular.module('copayApp.services') - .factory('logHeader', function($log, isChromeApp, isCordova) { + .factory('logHeader', function($log, isChromeApp, isCordova, isNodeWebkit) { $log.info('Starting Copay v' + window.version + ' #' + window.commitHash); - $log.info('Client: isCordova:', isCordova, 'isChromeApp:', isChromeApp); + $log.info('Client: isCordova:', isCordova, 'isChromeApp:', isChromeApp, 'isNodeWebkit:', isNodeWebkit); $log.info('Navigator:', navigator.userAgent); return {}; });