显示联系人页面后框架数组为空,下一个“ tns-template-drawer-navigation-ts”导航会引发异常

时间:2019-04-03 18:28:42

标签: nativescript nativescript-plugin

使用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);
                })
        });
}

可以很好地返回联系人,并且当前页面有效。当我尝试使用抽屉式水龙头从当前页面导航离开时,会出现此问题,这会将我带到其他页面之一。因此,似乎“联系人”显示正在清除框架数组(框架堆栈)。

1 个答案:

答案 0 :(得分:0)

好吧,尼古拉·特松涅夫(Nikolay Tsonev)给了我答案,这是我的错,在开发选项中启用了“不保留活动选项”。禁用它后,当我在应用程序之间切换时,一切正常。