尝试在MenuItem Action上将操作设置为OPEN_URI。
这是我的代码:
TimelineItem item2 = new TimelineItem()
{
Creator = new Contact()
{
DisplayName = "Joaquin Quick Start",
PhoneNumber = "+XXXXXXXX",
Id = "JOAQUIN_QUICKSTART",
},
Text = "Buenos Dias ",
SpeakableText = "Good morning",
Notification = new NotificationConfig() { Level = "DEFAULT" },
MenuItems = new List<MenuItem>() { { new MenuItem() {Action ="CUSTOM", Id="complete", Values= new List<MenuValue>() {
new MenuValue() {DisplayName="Complete",IconUrl="http://app.sfy.com/glass/ic_bed_50.png"}
}}},
{ new MenuItem() { Action ="OPEN_URI"}},
{ new MenuItem() { Action ="NAVIGATE"}},
{ new MenuItem() { Action ="VOICE_CALL"}},
}
};
item2.BundleId = item.BundleId;
controller.Service.Timeline.Insert(item2).Fetch();
如何为操作OPEN_URI设置有效负载?
{ new MenuItem() { Action ="OPEN_URI"}},
该属性在API中公开
https://developers.google.com/glass/v1/reference/timeline/insert
” menuItems [] .caps string一个通用的有效负载,其含义根据此MenuItem的操作而变化。 当操作为OPEN_URI时,有效负载是要查看的网站的URL。 当动作是PLAY_VIDEO时,有效载荷是视频的流URL 写 “
但是我找不到设置有效载荷的方法。
我想到的唯一想法就是使用json的直接http帖子。
问题是Quickstart .NET项目包含Mirror TimeLine APi的1.3版。
我必须删除前者,并使用以下内容添加新版本:
install-package Google.Apis.Mirror.v1 -Pre
答案 0 :(得分:0)
documentation说这是一个可设置的属性,所以如果我正确理解.NET,你应该可以做类似的事情
{ new MenuItem() { Action="OPEN_URI", Payload="http://example.com/" } }
答案 1 :(得分:0)
我有同样的问题。它实际上是一个版本问题。您可能正在使用版本镜像api版本1.3.0.15233(或接近它)。这是快速入门所带来的,但不是最新的最佳版本。
我更新到了Google.Apis.Mirror.v1的1.6.0.33版,并且能够添加有效负载。我知道这不再是最新版本,但我认为它仍然可以在最新版本中使用。您可以在https://www.nuget.org/packages/Google.Apis.Mirror.v1/
上获取nuget的最新版本注意:您需要进行一些额外的更改。例如,当您调用Service.Timeline.Insert(MyCard).Fetch();您将在版本1.6.0.33中看到“Fetch()”无效。您需要更改为“执行()”。这些更改相对简单,但在升级时会破坏一些现有代码。
我希望这会有所帮助。