Cordova WP8 - 推送通知回拨

时间:2015-03-30 17:12:46

标签: javascript c# cordova windows-phone-8

当应用程序关闭并且在应用程序打开时不通过“Toast”导航时,似乎无法触发“功能”。我意识到你可以做到这一点:

 protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            try
            {
                if (this.NavigationContext.QueryString["NavigatedFrom"] == "toast") // this is set on the server
                {
                    this.CordovaView.StartPageUri = new Uri("//www/index.html#notification-page", UriKind.Relative);




                }
            }
            catch (KeyNotFoundException)
            {
            }
        }

问题是,这会触发重新加载应用程序并丢失所有本地存储。我们无法使用查询字符串,因为它会在应用加载时触发错误。

我想尝试在回调中做这样的事情:

 this.CordovaView.CordovaBrowser.InvokeScript("eval", new string[] { // some script here to callback to the JS level });

但是这看起来CordovaView目前还没有完全加载,并且实际上并没有在应用程序端激活该功能。有什么我可以做的“迫使”这个等待Cordova在它发射之前满载吗?

1 个答案:

答案 0 :(得分:0)

只需添加一个额外的包装器:

this.CordovaView.CordovaBrowser.InvokeScript("eval", new string[] { 
"document.addEventListener('deviceready',function(){/*some script here to callback to the JS level*/ });"
});

==更新

上述操作与预期完全不同,因为在这种情况下,事件在CordovaBrowser页面加载之前触发。 JIRA问题在这里:https://issues.apache.org/jira/browse/CB-8776