使用nativescript-contacts插件导航到另一个页面时遇到问题(例外)。该应用程序是使用tns-template-drawer-navigation-ts模板构建的。一切正常,直到我访问手机的联系人并返回,然后尝试使用抽屉式导航切换到另一页。问题是当我从“联系人”屏幕返回并且topmost()。navigate函数调用Frame之后,Frame堆栈为空,并且由于Frame堆栈为空(数组长度= 0),因此返回“ undefined”。以下是Chrome调试器中代码的相关部分。这是一个核心,插件错误还是我应该在调用getContact之前或之后将堆栈中的一个帧推入堆栈。
我已经更新到tns 5.3.1,更新了tns并尝试用自己的代码解决问题,但是该代码在核心nativescript中失败了。
我的代码:
export function onGetContact(args: EventData) {
Permissions.requestPermissions([android.Manifest.permission.GET_ACCOUNTS,
android.Manifest.permission.READ_CONTACTS,],
"Permission to access your contacts is requested")
.then(() => {
Contacts.getContact()
.then((args: GetContactResult) => {
/// Returns args:
/// args.reponse: "fetch"
/// args.data: Generic cross platform JSON object, null if no contacts were found.
logContact(args);
storeContact(args.data);
}, function (err) {
console.log("Error: " + err);
})
});
}
可以很好地返回联系人,并且当前页面有效。当我尝试使用抽屉式水龙头从当前页面导航离开时,会出现此问题,这会将我带到其他页面之一。因此,似乎“联系人”显示正在清除框架数组(框架堆栈)。
答案 0 :(得分:0)
好吧,尼古拉·特松涅夫(Nikolay Tsonev)给了我答案,这是我的错,在开发选项中启用了“不保留活动选项”。禁用它后,当我在应用程序之间切换时,一切正常。