Cordova windows 8 手机 WNS 推送通知和应用发布流程及详细信息

Posted

技术标签:

【中文标题】Cordova windows 8 手机 WNS 推送通知和应用发布流程及详细信息【英文标题】:Cordova windows 8 phone WNS push notification and app release process with details 【发布时间】:2015-12-04 11:43:20 【问题描述】:

我正在使用cordova 开发windows phone 应用程序。我需要在这个应用程序中实现推送通知。现在我正在使用下面的插件来推送通知。 https://github.com/phonegap-build/PushPlugin

我创建了一个 Windows 开发者帐户并在此帐户中注册了应用程序。还在 Live Services 站点中创建了客户端 ID、客户端密码。我需要明确说明在 windows 应用程序中添加应用程序身份。

谢谢。

【问题讨论】:

【参考方案1】:

先添加这个插件https://github.com/phonegap-build/PushPlugin

将此添加到脚本文件中。

if(deviceID == "undefined" || deviceID == null || deviceID == "null")
            pushNotificationVariable = window.plugins.pushNotification;
            var platform = device.platform;

            switch(platform)
                case 'ios':
                    pushNotificationVariable.register(tokenHandler,errorHandler, "badge":"true","sound":"true","alert":"true","ecb":"onNotificationAPN");
                break;
                case 'android':
                    pushNotificationVariable.register(successHandler,errorHandler,"senderID":"643203326229","ecb":"onNotification");
                break;
                case 'Win32NT':
                    var channelName = "PUSHChannel";
                    pushNotificationVariable.register(channelHandler, errorHandler,  "channelName": channelName, "ecb": "onNotificationWP8", "uccb": "channelUriHandler", "errcb": "jsonErrorHandler" );
                break;
                default:
                    window.localStorage.setItem("DeviceID",device.uuid);
                break;
            

        

此代码将在您将该 ChannelURI 发送到 Service 之后返回 ChannelURI,以便他们能够将 Push 发送到 windows phone。

Try this

Reference

在 Mainpage.xaml.cs 中添加这个

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    
        base.OnNavigatedTo(e);
        try
        
            if (this.NavigationContext.QueryString["NavigatedFrom"] == "Toast Notification") // this is set on the server
            
                string navigatedString = this.NavigationContext.QueryString["NavigatedFrom"];
                this.CordovaView.StartPageUri = new Uri("//www/index.html#navstring=" + navigatedString, UriKind.Relative);
            
        
        catch (KeyNotFoundException)
        
        
    

从 javscript 调用 angularjs 函数

function ajaxResultPost(data, type, res) 
var scope = angular.element(document.getElementById("MainWrap")).scope();
scope.$apply(function () 
scope.updateCustomRequest(data, type, res);
);

如果你想从 c# 调用 javascript 函数,那么试试这个

this.CordovaView.Browser.InvokeScript("eval", new string[]  "yourJavascriptFunction(); " );

如何从 C# 调用 JavaScript – Cordova/PhoneGap

https://cordovablogsblogs.wordpress.com/2015/07/10/how-to-call-javascript-from-c-cordovaphonegap/

【讨论】:

感谢您的反馈。 现在我收到通知了。我需要在单击通知时导航相应的页面。请帮我。谢谢。 我已经提到了这个解决方案。但我的问题是从不同模块收到的推送通知。当我使用此代码时,URL 被导航。但是我的内容没有加载,因为内容是从 angularJs 函数加载的。我需要知道如何在导航之前调用 angularjs 函数。

以上是关于Cordova windows 8 手机 WNS 推送通知和应用发布流程及详细信息的主要内容,如果未能解决你的问题,请参考以下文章

设置 Windows 推送通知服务 (WNS) 服务器端

从 WNS 调用的 BackgroundActivated 任务单进程模型的 WIndows Universal MediaPlayer

WP 8.1 Silverlight 应用程序:从哪里获取现有应用程序的 WNS“包 SID”和“客户端密钥”?

Azure 通知中心“WNS 通道已断开”错误

使用 Cordova/Phonegap 保存从手机摄像头拍摄的图像 Windows Phone 7

如何在Windows 8中安装Cordova 3.0.0