小娜追踪快递

news/2024/11/20 7:17:44/

小娜作为我们的全能秘书,能够帮我们设置提醒、推荐新闻、查询天气、聊天讲段子,现在还能帮助我们追踪快递,大家可以移步微软小娜懒癌支持中心阅读相关软文,不想移步的朋友也可以通过下面的动图来了解一下效果,看一下Win10上的网购剁手之旅是如何的更加舒适省心。

(以此动图来向热心博主疯狂的懒羊羊表示感谢,该博主向我们推荐了ScreenToGif,使我们的博客更生动)

 

如何在我们的应用/网站中集成“小娜追踪快递”功能呢?

这和把大象装在冰箱一样简单,只需要三步:1)打开IDE,加载工程;2)加入包含ms-cortana://InterestTracking Deep-link的HyperLink或者Button控件;3)编译部署,把IDE关上。

没学会?!好吧,我们还是更详细的讲一下。第一步和第三步就不说了,主要说一下第二步。

首先我们来看一下小娜Deep-link的格式,如下图:

参数部分是URL编码过的Json串,该Json对象是一个数组,数组中的元素包含以下属性:

属性名注释类型 
 type 目前该属性值固定为package string
 CarrierName  快递公司名称 string
 TrackingNumber  快递单号 string

 

 

 

 

可以使用如下代码得到Deep-link字符串:

public class MailPackage
{public string type { get; set; }public string TrackingNumber { get; set; }public string CarrierName { get; set; }
}public string GenerateCortanaDeepLink(string carrierName, string trackingNumber)
{if (string.IsNullOrWhiteSpace(carrierName)|| string.IsNullOrWhiteSpace(trackingNumber)){return null;}// JSON对象IList<MailPackage> mailPackages = new List<MailPackage>();MailPackage mailPackage = new MailPackage{type = "package",TrackingNumber = trackingNumber,CarrierName = carrierName};mailPackages.Add(mailPackage);// 序列化var serializer = new DataContractJsonSerializer(typeof(List<MailPackage>));var stream = new MemoryStream();serializer.WriteObject(stream, mailPackages);byte[] dataBytes = new byte[stream.Length];stream.Position = 0;stream.Read(dataBytes, 0, (int)stream.Length);string dataString = Encoding.UTF8.GetString(dataBytes);// Url encodestring encodeData = System.Net.WebUtility.UrlEncode(dataString);// DeepLinkstring url = string.Format("ms-cortana://InterestTracking?parameter={0}", encodeData);return url;
}

有了Deep-link后,我们有多种方式来使用

在网页中,将Deep-link作为一个超链接来使用就可以

<a href="ms-cortana://InterestTracking?parameter={URL encoded package info JSON string}">Tell Cortana</a>

在UWP应用中,如果你使用的是HyperlinkButton,在XAML中你可以这样用

<HyperlinkButton NavigateUri="ms-cortana://InterestTracking?parameter={URL encoded package info JSON string}" />

如果你使用其它控件,你可以在其点击事件处理中加入如下代码

Windows.System.Launcher.LaunchUriAsync("ms-cortana://InterestTracking?parameter={URL encoded package info JSON string}");

 

另外需要提到一点,使用Deep-link的方式来让小娜追踪快递,是在14332之后的预览版才有的功能。淘宝、旺信在发布时考虑到有的用户没有升级预览版,但也有的用户可以提前尝鲜新功能并给我们反馈改进意见,所以在代码中加入了对系统版本的判断,只有系统达到一定版本才能看到追踪快递这个按钮。下面提供两个关于版本号处理的函数,供大家参考。

一个是将当前系统版本号取出并转为字符串:

public static string GetOperatingSystemVersion()
{string sv = AnalyticsInfo.VersionInfo.DeviceFamilyVersion;ulong v = ulong.Parse(sv);ulong v1 = (v & 0xFFFF000000000000L) >> 48;ulong v2 = (v & 0x0000FFFF00000000L) >> 32;ulong v3 = (v & 0x00000000FFFF0000L) >> 16;ulong v4 = v & 0x000000000000FFFFL;string version = $"{v1}.{v2}.{v3}.{v4}";return version;
}

另一个是输入一个版本号,得到对应的ulong值,方便与系统版本号AnalyticsInfo.VersionInfo.DeviceFamilyVersion比较大小:

public static ulong GenerateUlongFromVersion(ushort Major, ushort Minor, ushort Build, ushort Revision)
{return ((ulong)Major << 48)+ ((ulong)Minor << 32)+ ((ulong)Build << 16)+ ((ulong)Revision);
}

 

是不是很简单啊,有没有很想体验一下啊,快来加入Windows预览体验吧,然后自己动手试一试!示例代码可点此下载。

当然,小娜的这个功能还没有正式Release,可能会存在一些Bug。比如我们在内部试用时就发现不同数据源过来的快递公司名称不一致,有的是圆通快递,有的却是圆通速递。针对此,小娜团队积极应对,对能收集到的快递公司名作了对应的映射关系,使得常见的快递公司的不同叫法都可以匹配到正确的记录。

如果各位博主在使用中发现任何问题,欢迎积极的给我们留言。另外,如果你对这个功能有任何好的建议或期望,也请告诉我们,万一哪天实现了呢。

转载于:https://www.cnblogs.com/ms-uap/p/5566129.html


http://www.ppmy.cn/news/803622.html

相关文章

学习记录--香水数据挖掘与分析

香水处理与分析过程中可以对商品的名称进行词云分析。 通过jieba进行分词&#xff0c;wordcloud 库绘制词云。 在线销售商品的商品名称&#xff0c;可以包括香水的品牌&#xff0c;适宜人群&#xff0c;香型、包装、颜色、型号、快递服务商等。

软件安全测试流程与方法分享(下)

安全测试是在IT软件产品的生命周期中&#xff0c;特别是产品开发基本完成到发布阶段&#xff0c;对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。安全是软件产品的一个重要特性&#xff0c;也是CNAS测试认证中非常重要的项目&#xff0c;本系列文章我们与大家…

23 | MySQL是怎么保证数据不丢的?

以下内容出自《MySQL 实战 45 讲》 23 | MySQL是怎么保证数据不丢的&#xff1f; binlog 的写入机制 1、事务执行过程中&#xff0c;先把日志写到 binlog cache&#xff0c;事务提交的时候&#xff0c;再把 binlog cache 写到 binlog 文件中。 2、一个事务的 binlog 是不能被…

html周志模板,校友邦周志范文16篇

蔡 等 1 人赞同该回答 附件1: 校友邦平台规范化实习管理要点(一)学院教务(或教秘、实习实践负责人) 周志、月志交规定篇数提交实习评价问卷&#xff0c;下载实习报告模板&#xff0c;按要求格实习校友邦平台规范化实习管理要点(一)学院教务(或教秘、实习实践负责人): 序号提交周…

java计算机毕业设计基于安卓Android的校园助手APP

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把校园助手与现在网络相结合,利用java技术建设校园助手APP,实现校园助手的信息化。则对于进一步提高校园助手发展,丰富校园助手经验能起到不少的促进作用。 校园助手APP能够通过互联网得到广泛的、全面的宣传,让尽可能多…

oppo小游戏接入代码

oppo接入 oppo获取用户信息oppo广告接入oppo获取用户信息 var self = this;qg.login({success: function (res) {//用户uid res.data.uid;//用户头像地址 res.data.avatar;

java计算机毕业设计基于安卓Android的社交app-社会交友app

项目介绍 社交系统APP管理是社交系统管理中对用户必不可少的一个部分。在人们社交系统管理的整个过程中,社交系统APP管理担负着最重要的角色。为满足如今日益复杂的管理需求,各类社交系统APP管理程序也在不断改进。本课题所设计的社交系统APP,使用springboot框架,Android技术进…

手游游戏工作室内部OA管理系统免费安装教程

1. 安装配置&#xff0c;下载OA源码 ①&#xff1a;安装宝塔&#xff08;https://www.bt.cn/&#xff09;系统&#xff0c;配置环境 ②&#xff1a;下载溪谷工作室OA免费版 溪谷软件工作室OA管理系统免费下载地址-游戏公会管理-游戏公会运营推广资讯-游戏工作室OA &#xff08…