当应用程序关闭并且在应用程序打开时不通过“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在它发射之前满载吗?
答案 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