了解 Pushwoosh 中的设备标识符
有两种方法可以识别在 Pushwoosh 注册的特定设备——硬件 ID (HWID) 和推送令牌 (push token)。
HWID
Anchor link toHWID (或硬件 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 HWID
Anchor link to对于 iOS 设备,IDFV (Identifier for Vendor) 被用作设备的 HWID。只要设备上安装了至少一个来自同一供应商的应用,它就不会改变。
iOS HWID 示例 (仅大写!):CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93
推送令牌
Anchor link to推送令牌 (设备令牌) 是由 Apple 或 Google 推送通知网关为应用-设备组合颁发的唯一密钥。它允许网关和推送通知提供商路由消息,并确保通知被传送到其预期的唯一应用-设备组合。
iOS 推送令牌
Anchor link toiOS 设备推送令牌是包含 64 个十六进制符号的字符串。iOS 推送令牌示例:03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
Android 推送令牌
Anchor link toAndroid 设备推送令牌的长度可能不同 (通常少于 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 显示有关注册操作的重要信息。
- 接下来,将设备连接到您的 Mac 并启动 Xcode。转到 Window->Device and Simulators。

- 在打开的窗口中,选择您连接的设备,然后单击左下角的上三角符号以查看设备控制台:

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

-
接下来,在设备上启动您的应用并等待对话框窗口。允许您的应用发送推送通知。
-
完成这些步骤后,从控制台窗口中选择整个设备日志,并将其复制到任何文本编辑器中。
您要查找的是 /registerDevice Pushwoosh API 请求:

如果设备注册正确,此请求必须包含以下参数,包括“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: ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7Android
Anchor link to-
如果您有权访问应用的源代码,请确保 Pushwoosh 日志级别设置为
NOISE。为此,请将值为NOISE的com.pushwoosh.log_level元数据添加到AndroidManifest.xml中。 -
接下来,在您的 Mac/PC 上运行 Android Studio,然后转到 Tools -> Android -> Android Device Monitor。

- 将您的设备连接到 Mac/PC 并启动应用。等待约 30 秒,从控制台窗口中选择整个设备日志,并将其复制到任何文本编辑器中。

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

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

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

在请求中找到“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 notificationsChrome (桌面版)
Anchor link to-
转到您的网站。
-
在页面任意位置右键单击,然后按“Inspect”。

-
在打开的窗口中,转到“Application”选项卡。
-
然后,在左侧边栏中,选择 IndexedDB -> Pushwoosh_SDK_Store -> keyValue。在这里,找到 HWID 和推送令牌参数。

Chrome (移动版)
Anchor link to-
将您的移动设备连接到计算机。
-
在您的桌面版 Chrome 中转到 chrome://inspect/#devices。
-
在您的移动版 Chrome 上打开您的网站。
-
在移动版 Chrome 上打开网站后,您将在桌面版 Chrome 页面中看到相应的页面。请看下面的截图:

-
按下上面截图中高亮显示的“Inspect”按钮。
-
以下窗口将出现在您的桌面版 Chrome 中。在该窗口的“Application”选项卡中,打开 IndexedDB -> PUSHWOOSH_SDK_STORE。之后,单击 keyValue 并打开 API_PARAMS 部分:

在 API_PARAMS 部分,您将找到“hwid”和“push token”参数及其值。
Safari
Anchor link to- 转到您的网站。
- 在页面任意位置右键单击并选择 Inspect Element。
- 转到 Storage 选项卡 -> Indexed Databases -> PUSHWOOSH_SDK_STORE -> keyValue。
- 展开 API_PARAMS,在这里找到“hwid”和“push token”的值。
