有没有办法通过 Nativescript 中的 handleOpenURL 清除 AppURL?
is there a way to clear AppURL via handleOpenURL in Nativescript?
应用挂起再恢复后,appURL 值仍保留在应用范围内。
在 Nativescript 应用程序中初始化的 App 组件收到 appURL 后,我正在尝试重置它的值
import { handleOpenURL, AppURL } from 'nativescript-urlhandler';
ngOnInit() {
handleOpenURL((appURL: AppURL) => {
console.log('Got the following appURL ', appURL);
var urlEncodedString = appURL.toString().split('out=')[1];
var json = JSON.parse(decodeURIComponent(urlEncodedString));
var token = json["token"].toString();
}
}
或者如果可以在应用恢复时清除 Nativescript 中的应用缓存
求助!需要
有什么理由不能将其定义为整个函数,而不是函数表达式?
从我对JS的原始理解来看,表达式是temporal/ephemeral。尝试更改临时值并不符合该表达式的隐含期望。
你最好做一个函数,当传递一个参数时,它在创建的函数对象的每个实例上都是唯一的。
function doThing(parameter){ do_operations_with(parameter) }
我相信对函数的每次调用都会提升函数,创建具有自己的子命名空间的对象,并且对于传递的每个参数,它们对于该函数运行时的命名空间都是唯一的。
您可以在处理后将意图数据设置为空。
handleOpenURL((appURL: AppURL) => {
...
...
// Once you process the app url, set intent data to null
if (application.android) {
const activity = application.android.foregroundActivity || application.android.startActivity;
if (activity) {
const intent = activity.getIntent();
if (intent) {
intent.setData(null);
}
}
}
});
应用挂起再恢复后,appURL 值仍保留在应用范围内。
在 Nativescript 应用程序中初始化的 App 组件收到 appURL 后,我正在尝试重置它的值
import { handleOpenURL, AppURL } from 'nativescript-urlhandler';
ngOnInit() {
handleOpenURL((appURL: AppURL) => {
console.log('Got the following appURL ', appURL);
var urlEncodedString = appURL.toString().split('out=')[1];
var json = JSON.parse(decodeURIComponent(urlEncodedString));
var token = json["token"].toString();
}
}
或者如果可以在应用恢复时清除 Nativescript 中的应用缓存
求助!需要
有什么理由不能将其定义为整个函数,而不是函数表达式?
从我对JS的原始理解来看,表达式是temporal/ephemeral。尝试更改临时值并不符合该表达式的隐含期望。
你最好做一个函数,当传递一个参数时,它在创建的函数对象的每个实例上都是唯一的。
function doThing(parameter){ do_operations_with(parameter) }
我相信对函数的每次调用都会提升函数,创建具有自己的子命名空间的对象,并且对于传递的每个参数,它们对于该函数运行时的命名空间都是唯一的。
您可以在处理后将意图数据设置为空。
handleOpenURL((appURL: AppURL) => {
...
...
// Once you process the app url, set intent data to null
if (application.android) {
const activity = application.android.foregroundActivity || application.android.startActivity;
if (activity) {
const intent = activity.getIntent();
if (intent) {
intent.setData(null);
}
}
}
});