首页 > 解决方案 > Cordova 中的应用程序退出无法清除服务器上的会话

问题描述

我使用 Cordova 构建一个在线应用程序,我在我的服务器(php)上使用了一些会话变量。当我退出这个应用程序时,会话仍然存在于我的服务器上。如何修复它以自动取消设置所有会话?这是我的 package.json:

{
  "name": "helloworld",
  "displayName": "HelloCordova",
  "version": "1.0.0",
  "description": "A sample Apache Cordova application that responds to the deviceready event.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Apache Cordova Team",
  "license": "Apache-2.0",
  "dependencies": {
    "cordova-android": "^7.1.4",
    "cordova-browser": "^5.0.4",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-dialogs": "^2.0.1",
    "cordova-plugin-inappbrowser": "^3.0.0",
    "cordova-plugin-nativestorage": "^2.3.2",
    "cordova-plugin-network-information": "^2.0.1",
    "cordova-plugin-share": "^0.1.3",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-whitelist": "^1.3.3",
    "cordova-plugin-x-toast": "^2.7.2"
  },
  "cordova": {
    "plugins": {
      "cordova-plugin-dialogs": {},
      "cordova-plugin-nativestorage": {},
      "cordova-plugin-device": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-x-toast": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-inappbrowser": {},
      "cordova-plugin-network-information": {},
      "nl.madebymark.share": {}
    },
    "platforms": [
      "browser",
      "android"
    ]
  }
}

标签: phpcordovasessionphonegap

解决方案


您正在分别寻找适用于 Android 和 iOS 的本机onDestroyapplicationWillTerminate函数。尝试通过添加这些关键字来搜索插件。这些事件似乎存在一些cordova插件:

但是,我还没有检查它们的有效性。WebView当您的应用程序通过科尔多瓦网桥接收到事件时,该应用程序很可能实际上已经被销毁。

另一方面,为什么不将会话令牌也保留在您的应用程序中呢?只需将其安全地存放在某个地方。用户不必每次关闭应用程序时都登录这一事实是一个很棒的功能,而不是一个错误。


推荐阅读