Windows Phone API

API 概述

APIs 主要都集中在名空间 JPushSDK 的类 JServer 中

Property-IsDebug

开启调试模式,帮助了解集成的情况,打印相关 log,发布商店时,请关闭调试模式,否则会导致无法通过微软应用商店的审核

支持版本

开始支持 v1.0.0

  1. public static bool IsDebug{get;set;}
参数说明
  • IsDebug=true 开启调试模式
  • IsDebug=false 关闭调试模式

Method - Setup

调用此 API 将 APP_KEY 上报给 JPush 后台

支持的版本

开始支持 v1.0.0

接口定义
  1. public static void Setup(string APP_KEY, string CHANNEL,Action<string> action)
参数说明
  • APP_KEY
    • JPush Portal 上注册应用后生成的 Appkey
  • CHANNEL
    • 作为应用程序的发布去发,可自行定义
  • action
    • 成功获取 RegistrationID 后调用该回调函数 void registationIDCallback(string registrationID){ Debug.WriteLine(registrationID);}

Method -Activated

应用程序进入 Activated 状态的调用,以正确的处理 Tomstoning 状态

支持版本

开始支持 v1.0.0

接口定义
  1. public static void Activated()

Method-Deactiveted

应用程序进入 Deactivated 状态调用,用来正确的保存应用程序的退出状态

支持版本

开始支持 v1.0.0

接口定义
  1. public static void Deactivated()

JPush SDK 的状态和 MPNs 的通知

注册 JPush SDK 中的事件,用来监听 JPush SDK 的运行情况和接收 MPNs 发送的信息

支持版本

开始支持 v1.0.0

接口定义

  1. public static void AddNotification(string name, Action<Dictionary<string, string>> selector)

参数说明

  • name
    • 监听的消息类型,JPush SDK 提供以下 5 种类型
    • NotificationCenter.kNetworkDidSetupNotification 建立连接
    • NotificationCenter.kNetworkDidRegisterNotification 登陆成功
    • NotificationCenter.kNetworkDidLoginNotification 注册成功
    • NotificationCenter.kNetworkDidCloseNotification 关闭连接
    • NotificationCenter.kNetworkDidMPNsMessageNotification 收到 MPNs 消息
  • selector
    • 当有事件发生时触发该回调函数
    • Dictionary在kNetworkDidSetupNotification 时会带一个 RegistrationID
    • Dictionary在kNetworkDidSetupNotification 时会带一个 MPNs 的消息

示例代码

  1. void callBack(Dictionary<string, string> dict)
  2. {
  3. Debug.WriteLine(dict.ToString());
  4. }
  5. 或者使用 lamda 表达式
  6. JPushSDK.NotificationCenter.AddNotification(JPushSDK.NotificationCenter.kNetworkDidCloseNotification, (K) =>
  7. {
  8. Deployment.Current.Dispatcher.BeginInvoke(() =>
  9. {
  10. //TextConnectionState.Text = "关闭连接";
  11. });
  12. });

开启、查询和停止 MPNs 推送功能

与 Windows Phone 推送相关的 API 说明

Method - RegisterNotification

注册 MPNs 服务的接口。当自行定制弹出用户允许推送的窗口,请使用这个接口。用户关闭了 MPNs 通知后,如果再次开启通知请调用此函数。不能调用 RegisterNotificationWithMessagebox

支持的版本

开始支持 v1.0.0

接口定义

public static void RegisterNotification()

Method - RegisterNotificationWithMessagebox

注册 MPNs 的接口,帮助管理首次注册弹出 messagebox,并保存用户选择状态

支持的版本

开始支持 v1.0.0

接口定义
  1. public static void RegisterNotificationWithMessagebox(string content, string title, Action<bool> callBack)
参数说明
  • content
    • 弹出框的内容
  • title
    • 弹出框的标题
  • callBack +回调函数通知用户选择结果

Method-CloseNotification

关闭 MPNs 推送

支持的版本

开始支持的版本 v1.0.0

接口定义
  1. public static void CloseNotification()

Method-IsOpneNotification

检查 MPNs 是否开启

支持版本

开始支持版本 v1.0.0

接口定义
  1. public static bool IsOpneNotification()

标签与别名 API

温馨提示,设置标签别名请注意处理 call back 结果。

只有 call back 返回值为 0 才设置成功,才可以向目标推送。否则服务器 API 会返回 1011 错误。

提供相关 API 用来设置别名(alias)与标签(tags)。

API 可以在 App 里任何地方调用。

别名 alias

为安装了应用程序的用户,取个别名来标识。以后给该用户 Push 消息时,就可以用此别名来指定。

每个用户只能指定一个别名。

同一个应用程序内,对不同的用户,建议取不同的别名。这样,尽可能根据别名来唯一确定用户。

系统不限定一个别名只能指定一个用户。如果一个别名被指定到了多个用户,当给指定这个别名发消息时,服务器端 API 会同时给这多个用户发送消息。

举例:在一个用户要登录的游戏中,可能设置别名为 userid。游戏运营时,发现该用户 3 天没有玩游戏了,则根据 userid 调用服务器端 API 发通知到客户端提醒用户。

标签 tag

为安装了应用程序的用户,打上标签。其目的主要是方便开发者根据标签,来批量下发 Push 消息。

可为每个用户打多个标签。

举例: game, old_page, women

Method - SetTagsWithAlias(with Callback)

调用此 API 来同时设置别名与标签,支持回调函数。

需要理解的是,这个接口是覆盖逻辑,而不是增量逻辑。即新的调用会覆盖之前的设置。

在之前调用过后,如果需要再次改变别名与标签,只需要重新调用此 API 即可。

支持的版本

开始支持的版本:1.0.0

接口定义
  1. public static void SetTagsWithAlias(HashSet<string> tags, string alias, Action<int, HashSet<string>, string> callback)
参数说明
  • tags
    • null 此次调用不设置此值。
    • 空集合表示取消之前的设置。
    • 每次调用至少设置一个 tag,覆盖之前的设置,不是新增。
    • 有效的标签组成:字母(区分大小写)、数字、下划线、汉字。
    • 限制:每个 tag 命名长度限制为 40 字节,最多支持设置 100 个 tag,但总长度不得超过 1 K 字节。(判断长度需采用 UTF-8 编码)
    • 单个设备最多支持设置 100 个 tag。App 全局 tag 数量无限制。
  • alias
    • null 此次调用不设置此值。
    • 空字符串 ("")表示取消之前的设置。
    • 每次调用设置有效的别名,覆盖之前的设置。
    • 有效的别名组成:字母(区分大小写)、数字、下划线、汉字。
    • 限制:alias 命名长度限制为 40 字节。(判断长度需采用 UTF-8 编码)
  • callbackSelector
    • NULL 此次调用不需要 Callback。
    • 用于回调返回对应的参数 alias, tags。并返回对应的状态码:0 为成功,其他返回码请参考错误码定义。
  1. private void TagsAliasCallBack(int resultCode, HashSet<string> tags, string alias);

Method - FilterValidTags

用于过滤出正确可用的 tags。

如果总数量超出最大限制则返回最大数量的靠前的可用 tags。

使用建议:

设置 tags 时,如果其中一个 tag 无效,则整个设置过程失败。

如果 App 的 tags 会在运行过程中动态设置,并且存在对 JPush SDK tag 规定的无效字符,则有可能一个 tag 无效导致这次调用里所有的 tags 更新失败。

这时你可以调用本方法 FilterValidTags 来过滤掉无效的 tags,得到有效的 tags,再调用 JPush SDK 的 set tags / alias 方法。

支持的版本

开始支持的版本:1.0.0

接口定义
  1. public static HashSet<string> FilterValidTags(HashSet<string> tags)
参数说明
  • tags
    • 原 tag 集合。
接口返回

有效的 tag 集合。

错误码定义

Code描述详细解释
6001无效的设置,tag/alias 不应参数都为 null
6002设置超时建议重试
6003alias 字符串不合法有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字。
6004alias 超长。最多 40 个字节中文 UTF-8 是 3 个字节
6005某一个 tag 字符串不合法有效的别名、标签组成:字母(区分大小写)、数字、下划线、汉字。
6006某一个 tag 超长。一个 tag 最多 40 个字节中文 UTF-8 是 3 个字节
6007tags 数量超出限制。最多 100 个这是一台设备的限制。一个应用全局的标签数量无限制。
6008tag 超出总长度限制总长度最多 1 K 字节
6011短时间内操作过于频繁10s 内设置 tag 或 alias 大于 10 次

统计功能

用于统计 Toast 点击,页面切换等事件

Method-HandleToastNotification

用于统计点击 Toast 通知进入应用程序的事件,需要放入到与 Toast 通知对应的页面和默认的页面,比如 MainPage.xaml 页面

支持版本

开始支持 v1.0.0

接口定义
  1. public static void HandleToastNotification(IDictionary<string, string> remotoInfo)
参数说明
  • remoteInfo
    • 页面切换时,由 wp 8 sdk 的接口:NavigationContext.QueryString 获取

Method-TrackPageInto

用于统计用户进入页面的事件,在需要统计页面的 OnNavigatedTo 中加入这个函数

支持版本

开始支持版本 v1.0.0

接口定义
  1. public static void TrackPageInto(string pageName)
参数说明
  • pageName
    • 页面名称

Method-TrackPageOut

用于统计用户离开页面的事件,在需要统计的页面的 OnNavigatedFrom 中加入这个函数

支持版本

开始支持版本 v1.0.0

接口定义
  1. public static void TrackPageOut(string pageName)
参数说明
  • pageName
    • 页面名称

获取 RegistrationID

这个 API 中在名空间 JPushSDK 的类 JServer 中

Method-GetRegisrtationID

获取 RegistrationID,没有登录成功之前返回空的字符串,登录成功后返回 RegistrationID

支持版本

开始支持 V1.0.0

接口定义
  1. public static string GetRegisrtationID()

客户端错误码定义

Code描述
1008AppKey 非法
1009当前的 Appkey 下没有创建 WinPhone 应用。请到官网检查此应用的应用详情