跳到内容

了解 Pushwoosh 中的设备标识符

有两种方法可以识别在 Pushwoosh 注册的特定设备——硬件 ID (HWID) 和推送令牌 (push token)。

HWID (或硬件 ID) 是 Pushwoosh SDK 分配给设备的关键标识符。

Android HWID

Anchor link to

对于 Android 设备,HWID 是由设备上安装的第一个带有 Pushwoosh SDK 的应用生成的随机字母和数字集。它随后会与包含 Pushwoosh SDK 的其他应用共享,因此所有这些应用最终都将具有相同的 HWID。

但是,如果用户删除了所有带有 Pushwoosh SDK 的应用,然后重新安装部分应用,则会再次生成一个新的 HWID。

Android HWID 示例:5dcaed99-e1e0-44dc-bde2-b96188b99e9e

对于 iOS 设备,IDFV (Identifier for Vendor) 被用作设备的 HWID。只要设备上安装了至少一个来自同一供应商的应用,它就不会改变。

iOS HWID 示例 (仅大写!):CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93

推送令牌

Anchor link to

推送令牌 (设备令牌) 是由 Apple 或 Google 推送通知网关为应用-设备组合颁发的唯一密钥。它允许网关和推送通知提供商路由消息,并确保通知被传送到其预期的唯一应用-设备组合。

iOS 推送令牌

Anchor link to

iOS 设备推送令牌是包含 64 个十六进制符号的字符串。iOS 推送令牌示例:03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f

Android 推送令牌

Anchor link to

Android 设备推送令牌的长度可能不同 (通常少于 255 个字符),并且通常以 APA91b… 开头;但是,它也可能有一个以冒号分隔的前缀。Android 推送令牌示例:APA91bFoi3lMMre9G3XzR1LrF4ZT82_15MsMdEICogXSLB8-MrdkRuRQFwNI5u8Dh0cI90ABD3BOKnxkEla8cGdisbDHl5cVIkZah5QUhSAxzx4Roa7b4xy9tvx9iNSYw-eXBYYd8k1XKf8Q_Qq1X9-x-U-Y79vdPq

从设备收集日志、HWID 和推送令牌

Anchor link to

首先,如果您有权访问应用的源代码,请确保应用中的 Pushwoosh_LOG_LEVEL 设置为 VERBOSE。为此,请检查 Info.plist 文件中的 Pushwoosh_LOG_LEVEL 字符串键。如果不是,请跳到下一步。以下是此键的可能值:

  • NONE - SDK 不记录日志
  • ERROR - 仅在控制台中显示错误
  • WARNING - 同时显示警告
  • INFO - 添加信息性消息
  • DEBUG - 添加调试信息
  • VERBOSE - SDK 的所有日志

VERBOSE 键值允许 Pushwoosh SDK 显示有关注册操作的重要信息。

  1. 接下来,将设备连接到您的 Mac 并启动 Xcode。转到 Window->Device and Simulators。
Xcode 的“设备和模拟器”窗口,显示已连接的 iOS 设备
  1. 在打开的窗口中,选择您连接的设备,然后单击左下角的上三角符号以查看设备控制台:
Xcode 设备控制台视图,显示设备日志,并高亮显示上三角按钮

从 Xcode 9.3 版本开始,获取设备控制台日志的过程略有改变。您只需转到 Launchpad 并启动“控制台”应用程序。在左侧边栏中选择您的设备。就这样!

macOS 控制台应用程序,显示在左侧边栏中选定的已连接 iOS 设备,并显示设备日志
  1. 接下来,在设备上启动您的应用并等待对话框窗口。允许您的应用发送推送通知。

  2. 完成这些步骤后,从控制台窗口中选择整个设备日志,并将其复制到任何文本编辑器中。

您要查找的是 /registerDevice Pushwoosh API 请求:

设备控制台日志,显示 registerDevice API 请求,其中 hwid 和 push token 参数可见

如果设备注册正确,此请求必须包含以下参数,包括“hwid”和“push token”的值:

示例
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"gateway":"production","jailbroken":0,"app_version":"1.9","application":"D868A-C13C1","sounds":["bubble.wav"],"device_type":1,"userId":"1457691684303547","language":"en","hwid":"FBCA07FE-05EE-4770-B4BA-AB6737BC1A98","package":"com.pushwoosh.pushon","timezone":"25200","push_token":"ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7","os_version":"11.2.2","v":"5.5.1","device_model":"iPhone7,1"}}
| Status: "200 no error"
| Response: {"status_code":200,"status_message":"OK","response":{"iosCategories":[{"categoryId":0,"buttons":[{"id":"33389","label":"test","type":"0","startApplication":0},{"id":"1233","label":"ajhdkj","type":"1","startApplication":0}]}]}}
x

设备推送令牌的通知也应该出现:

<Notice>: [PW] [I] -[PWPushNotificationsManagerCommon] Registered for push notifications: ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7
  1. 如果您有权访问应用的源代码,请确保 Pushwoosh 日志级别设置为 NOISE。为此,请将值为 NOISEcom.pushwoosh.log_level 元数据添加到 AndroidManifest.xml 中。

  2. 接下来,在您的 Mac/PC 上运行 Android Studio,然后转到 Tools -> Android -> Android Device Monitor。

Android Studio 的 Android 设备监视器窗口,显示已连接的 Android 设备
  1. 将您的设备连接到 Mac/PC 并启动应用。等待约 30 秒,从控制台窗口中选择整个设备日志,并将其复制到任何文本编辑器中。
Android 设备监视器控制台日志窗口,显示设备日志,其中 registerDevice 请求可见

请注意,在最新版本的 Android Studio 中,您也可以使用 Logcat 工具获取设备控制台日志。运行 Android Studio 并转到 View -> Tool Windows -> Logcat:

Android Studio 界面,显示从“视图”菜单访问的 Logcat 工具窗口

之后,您可以在 Logcat 窗口中找到设备日志:

Android Studio Logcat 窗口,显示设备日志,其中 registerDevice API 请求可见

以下示例展示了 Pushwoosh /registerDevice API 请求在设备控制台日志中的样子:

Android 设备控制台日志,显示 registerDevice API 请求,并高亮显示 hwid 和 push token 参数

在请求中找到“hwid”和“push token”参数的值:

示例
[RequestManager]
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"application":"D868A-C13C1","hwid":"fc79efabee7649ec","v":"5.5.2","device_type":3,"userId":"fc79efabee7649ec","device_name":"Phone","language":"en","timezone":25200,"android_package":"com.pushwoosh.pushon","jailbroken":0,"device_model":"Sony F8332","os_version":"8.0.0","idfa":"d43ad490-4e6a-48a8-b8b9-f20b76fbf07b","app_version":"1.5","push_token":"dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_","sounds":"[]"}}
| Response: {"status_code":200,"status_message":"OK","response":null}
x
[RequestManager] registerDevice response success

推送令牌包含在设备注册通知中:

I/Pushwoosh(12733): [DeviceRegistrar] Registered for pushes: dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_
03-30 14:45:10.539: D/PushOn(12733): Registered for push notifications

Chrome (桌面版)

Anchor link to
  1. 转到您的网站。

  2. 在页面任意位置右键单击,然后按“Inspect”。

Chrome 浏览器开发者工具已打开,其中“检查元素”上下文菜单选项可见
  1. 在打开的窗口中,转到“Application”选项卡。

  2. 然后,在左侧边栏中,选择 IndexedDB -> Pushwoosh_SDK_Store -> keyValue。在这里,找到 HWID 和推送令牌参数。

Chrome 开发者工具的“Application”选项卡,显示 IndexedDB,其中包含 Pushwoosh SDK Store 和含有 HWID 及推送令牌的 keyValue

Chrome (移动版)

Anchor link to
  1. 将您的移动设备连接到计算机。

  2. 在您的桌面版 Chrome 中转到 chrome://inspect/#devices。

  3. 在您的移动版 Chrome 上打开您的网站。

  4. 在移动版 Chrome 上打开网站后,您将在桌面版 Chrome 页面中看到相应的页面。请看下面的截图:

Chrome 远程调试页面,显示已连接的移动设备,并高亮显示“Inspect”按钮
  1. 按下上面截图中高亮显示的“Inspect”按钮。

  2. 以下窗口将出现在您的桌面版 Chrome 中。在该窗口的“Application”选项卡中,打开 IndexedDB -> PUSHWOOSH_SDK_STORE。之后,单击 keyValue 并打开 API_PARAMS 部分:

Chrome 开发者工具的“Application”选项卡,显示 IndexedDB PUSHWOOSH SDK STORE,其中 API_PARAMS 部分包含 hwid 和推送令牌

在 API_PARAMS 部分,您将找到“hwid”和“push token”参数及其值。

  1. 转到您的网站。
  2. 在页面任意位置右键单击并选择 Inspect Element。
  3. 转到 Storage 选项卡 -> Indexed Databases -> PUSHWOOSH_SDK_STORE -> keyValue。
  4. 展开 API_PARAMS,在这里找到“hwid”和“push token”的值。
Safari 开发者工具的“Storage”选项卡,显示 Indexed Databases,其中 PUSHWOOSH SDK STORE keyValue 包含带有 hwid 和推送令牌的 API_PARAMS