2015-11-23 3 views
0

У меня есть приложение, которое использует локальное хранилище Chrome для сохранения некоторой информации на ПК пользователя.Удаление локального хранилища Chrome после закрытия приложения NWJS на Windows

Это приложение отлично работает на OS X и Linux (Ubuntu), однако при тестировании в Windows 8.1 я открыл локальную папку хранения приложения. Было 2 файла:

chrome-extension_nbcogalgoagjhkbkpjfkfcckdmochgmi_0.localstorage 
chrome-extension_nbcogalgoagjhkbkpjfkfcckdmochgmi_0.localstorage-journal 

Как только я закрыл приложение, я увидел в папке, что оба файла были удалены!

После этого я снова открыл приложение и обнаружили, что теперь он создал эти файлы:

chrome-extension_cobbbbdapgeflbdpmchapmffabihofip_0.localstorage 
chrome-extension_cobbbbdapgeflbdpmchapmffabihofip_0.localstorage-journal 

И еще раз после закрытия приложения они оба были удалены.

Я использую NWJS SDK 13 alpha version 3, потому что мы работаем с Chrome Serial.

Это проблема, которая возникает только в Windows, еще не протестирована на других версиях Windows, но по крайней мере на Windows 8.1 она была, когда я проверял папки Local Storage на OS X и Ubuntu, файлы не получили удален.

Я выполняю его в режиме администратора.

Я также заметил, что после закрытия приложения он не удаляется, но после его открытия снова.

Не уверен, какие файлы должны быть отправлены, поэтому я опубликую то, что, я думаю, может помочь. Я не программировал в JS много, ни с NWJS. Возможно, что я делаю что-то неправильно, и потому что я не знаю, что может быть полезным или что не я не уверен, о внесении MCVE ...

manifest.json

{ 
    "manifest_version": 2, 
    "name": "Hello World", 
    "version": "2.1", 
    "minimum_chrome_version": "23", 
    "icons": { 
    "16": "assets/images/16x16.png" 
    }, 
    "app": { 
    "background": { 
     "scripts": ["main.js"] 
    } 
    }, 
    "permissions": ["serial"] 
} 

Package.json :

{ 
    "main": "main.html", 
    "name": "PAGUSS", 
    "description": "Paguss Payment Services", 
    "version": "0.1.0", 
    "keywords": [ "paguss", "payment" ], 
    "window": { 
     "title": "Paguss", 
     "transparent": true, 
     "icon": "assets/images/64x64.png", 
     "toolbar": false, 
     "frame": true, 
     "resizable": true, 
     "position": "mouse", 
     "min_width": 400, 
     "min_height": 500, 
     "max_width": 1200, 
     "max_height": 800, 
     "no-edit-menu": false 
    }, 
    "webkit": { 
     "plugin": false 
    } 
} 

Первая функция выполняется при вызове login.js:

function recoverBusinessConf(){ 

    var obj = { 
     "id": "1", 
     "saleExecutorFlow" : "[{\"callback\": \"validateTransactionData\"},{\"callback\": \"getTid\"},{\"callback\": \"fillTransactionData\"},{\"callback\": \"parseJsonToXML\"},{\"callback\": \"sendRequest\"},{\"callback\": \"processResponse\"},{\"callback\": \"endTransaction\"},{\"callback\": \"printVoucher\"},{\"callback\": \"updateLastRecordNumber\"},{\"callback\": \"sendTransactionToPagussServer\"}]", 
     "name": "SOFIA IS", 
     "rfc": "SIS141707UPT", 
     "address": { 
      "street": "CASTILLA 136", 
      "cologne": "ALAMOS", 
      "city": "BENITO JUÁREZ", 
      "country": "MÉXICO", 
      "postalCode": "03020", 
      "latitude": "", 
      "longitude": "", 
      "zone": "DISTRITO FEDERAL" 
     }, 
     "additionalData": { 
      "reference": false, 
      "waiter": false, 
      "turn": false, 
      "room": false 
     }, 
     "product": { 
      "id": "1", 
      "type": "RETAIL", 
      "operatives": { 
       "sale": { 
        "menu-link": "", 
        "title": "Venta", 
        "voucher": "", 
        "elavonMessage": "{\"Request\": {\"_id\":\"Credit Card.Sale\",\"Version\":\"4018\",\"Block\":[{\"_id\":\"HD\",\"Network_Status_Byte\":\"*\",\"Transaction_Code\":\"000\",\"Application_ID\":\"${vendorId}\",\"Terminal_ID\":\"${affiliationAndTid}\",\"Device_Tag\":\"${serialNumber}\"},{\"_id\":\"01\",\"POS_Entry_Capability\":\"04\",\"Account_Entry_Mode\":\"${accountEntryMode}\",\"Partial_Auth_Indicator\":\"0\",\"Account_Data\":\"${track02}\",\"Transaction_Amount\":\"${elavonFormattedAmount}\",\"Last_Record_Number\":\"${lastRecordNumber}\"},{\"_id\":\"03\",\"Merchant_Reference_Nbr\":\"${merchantReferenceNumber}\"},{\"_id\":\"16\",\"ICC_Cryptogram\":\"${_9F26}\",\"ICC_CID\":\"${_9F27}\",\"ICC_AED\":\"000000\",\"ICC_Unpredictable_Number\":\"${_9F37}\",\"ICC_ATC\":\"${_9F36}\",\"ICC_TVR\":\"${_95}\",\"ICC_TT\":\"${_9C}\",\"ICC_AIP\":\"${_82}\",\"ICC_TCP\":\"${_9F33}\",\"ICC_CVMR\":\"${_9F34}\",\"ICC_TTD\":\"${_9A}\",\"ICC_Transaction_Currency\":\"${_5F2A}\",\"ICC_Authorized_Amount\":\"${_9F02}\",\"ICC_Other_Amount\":\"${_9F03}\",\"ICC_Terminal_Type\":\"${_9F35}\",\"ICC_CSN\":\"${_5F34}\",\"ICC_IAD\":\"${_9F10}\"}]}}", 
        "voucher": ["[email protected] Santader @br @cnn VENTA @br @cnn (_affiliation_number_) _business_name_ @cnn _address_street_ @cnn _address_cologne_, _address_city_ @cnn _address_zone_ @br @lnn No.Tarjeta: _ccnumber_ @br @lnn _ccvendor_ @br @lnn APROBADA @lnn IMPORTE @cnn $ _amount_ _currency_ @br @lnn Oper.: _id_ @lnn Ref.: _reference_ @lnn ARQC: _arqc_ @lnn AID: _aid_ @lnn Aut.: _auth_ @br @lnn Fecha: _date_ _time_ @br @cnn ME OBLIGO EN LOS TERMINOS DADOS AL REVERSO DE ESTE DOCUMENTO @br @br @br @br @cnn ______________________________ @cnn _ccname_ @bc _id_ @br @br @br @br @br @br @br", 
           "[email protected] Santader @br @cnn VENTA @br @cnn (_affiliation_number_) _business_name_ @cnn _address_street_ @cnn _address_cologne_, _address_city_ @cnn _address_zone_ @br @lnn No.Tarjeta: _ccnumber_ @br @lnn _ccvendor_ @br @cnn C-L-I-E-N-T-E @br @lnn APROBADA @lnn IMPORTE @cnn $ _amount_ _currency_ @br @lnn Oper.: _id_ @lnn Ref.: _reference_ @lnn ARQC: _arqc_ @lnn AID: _aid_ @lnn Aut.: _auth_ @br @lnn Fecha: _date_ _time_ @br @cnn ME OBLIGO EN LOS TERMINOS DADOS AL REVERSO DE ESTE DOCUMENTO @br @br @br @br @cnn ______________________________ @cnn _ccname_ @bc _id_ @br @br @br @br @br @br @br"] 
       } 
      } 
     }, 
     "installer": { 
     }, 
     "keyAccountManager": { 
     }, 
     "affiliation": [{ 
      "affiliation": "7749517", 
      "lastRecordNumber": 0, 
      "device": { 
       "serie": "", 
       "model": "", 
       "version": "", 
       "tids": ["001"] 
      }, 
      "paymentModes": [{ 
       "type": "C", 
       "text": "Contado", 
       "max": 1000.0, 
       "min": 10.0, 
       "active": true, 
       "iniDate": "01/11/2015 9:00", 
       "endDate": "01/12/2015 9:00" 
      }], 
      "currency": "MXN" 
     }], 
     "users": [{ 
      "id": "1", 
      "name": "Ricardo", 
      "active": true, 
      "lastName": "Vargas", 
      "mothersName": "Flores", 
      "mail": "[email protected]", 
      "masterPin": "3579" 
     }] 
    }; 

    chrome.storage.local.set({'business': obj},function(items){ 
     window.location.href = '/view/index.html' 
    }); 
} 

ответ

1

Сегодня была выпущена версия альфа-6 NWJS в группах Google, вы можете ее проверить here. Эта ошибка была фактически решена с этим обновлением:

Изменения (функции перенесена из nw12)

  • nwjc: компилировать JS в машинный код для защиты исходного кода
  • нВта.Лоток исправить
  • 'в единственном экземпляре' поддержка ('истина' только)
  • 'User-Agent' в явном
  • 'dom_storage_quota' и 'additional_trust_anchors' в явной
  • Fix '' child_process.fork
  • Fix: не удалось запустить в некоторых дистрибутивах Linux
  • метода nw.App: ARGV, ClearCache, setProxyConfig, addOriginAccessWhitelistEntry, removeOriginAccessWhitelistEntry, часть из 'открытых' событий
  • Поддержка миграции LocalStorage файл данные на приложении начать
  • NW-Gyp обновлен до 0.13.0: Фикс поддержка сборки родного модуля

Таким образом, это была ошибка альфа-версии, которую я использовал, и был решен Cегодня.

0
настройки

Chrome приложение (на ветер ows) хранятся в Local App Settings\****app-id****\ и Sync App Settings\****app-id****\ в профиле пользователя Chrome, а не в том, что .localstorage файл, который , вероятно, создан только временно по соображениям совместимости.

+0

Хорошо, но почему локальное хранилище не сохраняет что-либо только на Windows, если оно отлично работает в Linux и OS X? Вам нужно больше информации? Какой код, и я буду искать его – Frakcool

+0

Он отлично работает в Windows. Почему вы думаете, что это не так? – wOxxOm

+0

Мое приложение проверяет, есть ли какие-либо данные, хранящиеся в локальном хранилище Chrome (это приложение на основе NWJS), если этого не происходит, тогда он просит пользователя ввести идентификатор и ключ (представить пользователя и пароль) и некоторые другие конфигурации. После того, как они полностью сконфигурировали его, если они закрываются/выходят из приложения, они должны иметь возможность видеть экран входа (который отлично работает на Linux и OS X), но в Windows он просто возвращает меня на «экран регистрации» вместо «экран входа в систему». – Frakcool