php - 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"
]
}
}
解决方案
您正在分别寻找适用于 Android 和 iOS 的本机onDestroy
和applicationWillTerminate
函数。尝试通过添加这些关键字来搜索插件。这些事件似乎存在一些cordova插件:
- https://github.com/agamemnus/cordova-plugin-ondestroy
- https://github.com/bsorrentino/cordova-broadcaster
但是,我还没有检查它们的有效性。WebView
当您的应用程序通过科尔多瓦网桥接收到事件时,该应用程序很可能实际上已经被销毁。
另一方面,为什么不将会话令牌也保留在您的应用程序中呢?只需将其安全地存放在某个地方。用户不必每次关闭应用程序时都登录这一事实是一个很棒的功能,而不是一个错误。
推荐阅读
- c - 为什么我的程序会跳过 gets() 函数?
- proxy - 如何确定由 IE 外部的 wpad.dat 确定的正在使用的特定代理
- php - 通过引用传递数组并更改其值
- php - 使用 PhpSpreadsheet 写入 Excel 文件
- html - Flexbox - div内的响应右对齐UL?
- asp.net-mvc - Automapper:对现有实体对象进行更新
- sql - 在组中构建以分号分隔的电子邮件列表
- git - 在 git 历史记录中移动文件
- r - 将矩阵列表组合成一个 big.matrix
- google-chrome-devtools - 当我命令元素展开时,它不会在 Chrome 开发工具中展开。为什么?