迁移到新版本 Cast Receiver 的最佳方式

Posted

技术标签:

【中文标题】迁移到新版本 Cast Receiver 的最佳方式【英文标题】:Best way to migrate to a new version of Cast Receiver 【发布时间】:2016-08-25 23:58:32 【问题描述】:

我们有一个自定义 Cast 接收器。我们决定重新编写它,并提供一组新的自定义消息,这些消息不受我们的旧客户支持。我们想知道管理旧接收器弃用的最佳方法是什么。

假设旧的接收器指向应用 ID“ABCDEF”,而旧的 ios/android 客户端指向这个旧的接收器应用 ID。

理想情况下,我们会创建一个新的 App ID“GHIJKL”,并让所有新的 iOS/Android 客户端指向它,而将旧的接收器“ABCDEF”留在原处,以便旧客户端继续运行。

但是,似乎很多信息都与我们的应用 ID 相关联(例如,我们在 chromecast.com/apps 和 Cast App 特色应用中列出)以及我们所有的接收器统计信息,因此我们担心创建一个新的应用 ID。

是否有另一种推荐的方法来使用相同的 App ID 升级我们的接收器,同时仍然保持与旧客户端的向后兼容性(例如,允许它们与旧的接收器代码对话)?我们看不到任何可以从客户端传递给接收器的自定义参数,以让它知道要动态拉取哪个版本。

【问题讨论】:

【参考方案1】:

在不了解您所做更改的性质的情况下,很难说您能做什么。这是一个尝试:更新您的新接收器(如下所述)并将其分解为相同的 appId。如果在新接收器中,旧的自定义消息/命名空间也受支持,那么旧客户端应该能够与新接收器通信。如果它们不受支持,一种方法是将旧的自定义命名空间/消息也添加到新的接收器(除了新的接收器),然后当您收到关于这些旧命名空间的消息时,只需迁移到您的新接收器到新消息/回调或任何有意义的东西。换句话说,尝试让老客户满意(但仅限于他们拥有的旧功能),然后新客户将调用新的命名空间/消息。

【讨论】:

谢谢。我们正在重写接收方使用的库,现在需要的数据不同。我将不得不更改库以支持旧客户端传递的数据,并且它不会是干净的。我们想知道创建一个新的应用程序 ID 并有一个干净的石板有什么缺点。它会影响我们在精选应用中的位置或其他副作用吗? 看来你可以将查询参数传递给 chromecast 接收器:***.com/questions/20472141/… 但我没有找到它在 Android 或 ios 中是如何完成的。如果我们可以传递不同的参数,也许我们可以重定向到不同的网页? @Ali 将参数传递给接收器的解决方案听起来很有希望。您能否确认此功能在 iOS/Android 上是否可用? 不,据我记得,这是很久以前更改的(该帖子来自 2013 年),现在没有参数可以作为 url 的一部分传递给接收器。

以上是关于迁移到新版本 Cast Receiver 的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章

将 Core Data/sqlite 记录迁移到新版本(从 Library 到 Documents 文件夹)

Cast Styled Media Receiver 图像资产(背景、徽标等)的尺寸指南?

从 NSDictionary 迁移到 Object 的最佳方式

cast receiver GameManager 添加 GameManagerListener 错误

iOS Facebook SDK:迁移到新版本的问题

将 C 程序从旧操作系统版本迁移到新版本