New Surfacing , New Starting

  • Windows Phone平台上Microsoft Push Notification Service (MPNS)的实践之二:针对MPNS响应的服务建议

    在你的应用(实际上是应用背后的服务)成功发布推送消息到MPNS后,MPNS将给予该服务请求一个响应码。 这些响应码的详细说明请参见: http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff941100(v=vs.105).aspx 应用服务可以根据这些返回码的情况分别处理。 我们这里给出一些典型的返回码的处理建议: Response code Notification...
  • Windows Phone平台上Microsoft Push Notification Service (MPNS)的实践之一:Setting a timeout for requests sent to MPNS

    随着WP平台开发生态系统的逐步完善以及相应的服务的改善,MPNS成为WP平台上广为使用的技术之一,以确保用户能及时的收到消息的更新。 其中,设置从原始请求到MPNS服务器的timeout,是其中一个重要的参数。 从原始的MSDN的参考内容来看,原来建议是设置为1秒(1000毫秒)。这表明,从原始服务所在的服务器,在发送推送请求到MPNS并等待MPNS服务相应的时间,必须在1s之内。 但是,考虑到目前MPNS服务器基本上在国外或者香港,在目前的网络条件下,即使该推送请求被MPNS成功的收到并给予正确的相应...
  • Windows 8应用开发问题集锦(13):利用Win8 metro app中的StreamSocket类与原来老平台上常规的异步Socket连接通信出现错误:Access is denied.

    问: 利用Win8 metro app中的StreamSocket类与原来老平台上常规的异步Socket连接通信出现错误:Access is denied,如何解决? 答复: 请在 Package.appxmanifest 中,到 Capabilities 下,将 Private Networks(Client & Severs) 打上勾,如下图所示:
  • Windows 8应用开发问题集锦(12):一个GridView绑定了两个数据源,用按钮切换显示。怎么能记住切换时的滚动位置,以便切换回来时可以在原处显示?

    问题:一个GridView绑定了两个数据源,用按钮切换显示。怎么能记住切换时的滚动位置,以便切换回来时可以在原处显示?尝试了保持ScrollBar的Maximum、Minimum和Value,并在切换的时候恢复,看起来不起作用。 答: 当切换的时候,我们可以保存GridView中ScrollViewer的HorizontalOffset或VerticalOffset。 数据源变换后,调用scrollViewer.ScrollToHorizontalOffset或scrollViewer...
  • 升级到Visual Studio 2012的十二大理由

    昨夜,VS2012如计划一般,完美的绽放在美丽的西雅图海滨。 看完直播之余,只想引用一句话: “Build world changing software or a phone with a bigger screen?” 微软负责Visual Studio部门的公司副总裁Jason Zander还发表博客,列举了升级到VS2012的十大理由( http://blogs.msdn.com/b/jasonz/archive/2012/08/15/visual-studio...
  • Windows 8应用开发问题集锦(11):有没有简单高效的方法让ListView刷新数据?

    问: 把ListView的ItemSource绑定到一个List<object>上,当删除List中一项内容后,ListView不会立即显示更新。只有list滚动之后,或者重新绑定List后,才会显示更新。有没有简单高效的方法让ListView刷新数据? 答复:这个问题最简单的方法是:使用 ObservableCollection<T>替代List<T>作为数据源。 因为当数据源改变的时候,若要通知控件刷新,我们需实现INotifyPropertyChanged...
  • Windows 8应用开发问题集锦(10):页面导航时如何获取Gridview的位置

    问:在页面导航中, 离开 ItemsPage 有两种可能, 1 、导航到 GroupDetailPage ; 2 、返回到 HomePage 。如果是情况 1 ,我们需要保存 ItemsPage 的数据,并且当从 GroupDetailPage 返回到 ItemsPage 的时候恢复数据,在这种情景下,有一个疑问。 ItemsPage 里呈现数据采用的是 GridView 控件,当从 ItemsPage 导航到 DetailPage 的时候,无法得到我当前这个 GridView 滑动到了什么位置...
  • Windows 8应用开发问题集锦(9):页面导航时数据缓存的问题

    问: 问题情境是,采用 Grid App 模板创建得项目,页面都继承自 LayoutAwarePage 。一个基本的导航流程是从 HomePage->ItemsPage->DetailPage ,如果 Page 的 NavigationCacheMode="Disabled" ,当从 DetailPage 回到 ItemsPage 时, ItemsPage 进入 DetailPage 之前的状态未被保存。如果 NavigationCacheMode="Enabled" ,导航到 ItemsPage...
  • Windows 8应用开发问题集锦(8):使用Frame.Navigate在页面之间导航,传递的参数是不是只能使用类似于string,int,double等基本数据类型?如果使用不可序列化的类型(如Dictionary<string,string>)在程序挂起调用Frame.GetNavigationState时会报异常。

    问:使用Frame.Navigate在页面之间导航,传递的参数是不是只能使用类似于string,int,double等基本数据类型?如果使用不可序列化的类型(如Dictionary<string,string>)在程序挂起调用Frame.GetNavigationState时会报异常。 答:Frame.Navigate方法参数,目前我们支持的参数类型局限于以下类型:数字(int等),字符(char),字符串(string),GUID和boolean。如果用了其他的类型,那么这些类型无法被...
  • Windows 8应用开发问题集锦(7):怎样在ListView中利用VirtualizedDataSource展示自定义的分组数据

    问:怎样在ListView中利用VirtualizedDataSource展示自定义的分组数据? 答: 可以参考以下示例中的场景四:HTML ListView working with data sources sample http://code.msdn.microsoft.com/windowsapps/ListView-custom-data-4dcfb128 使用包装了VirtualizedDataSource的数据适配器(data adapter),我们为items和groups分别提供数据源...
  • Windows 8应用问题集锦(6):WebView是否支持在代码中获取选中文字的功能。或者应该如何实现该功能

    问: WebView 是否支持在代码中获取选中文字的功能,或者应该如何实现该功能? 答: 这些功能都不能在 WebView 及其相关的 .cs 代码部分来实现。可以在 WebView 的内容中添加 JS 代码来进行这种交互。一些简单的交互功能在下面的链接提供的示例代码中也有所涉及: http://code.msdn.microsoft.com/windowsapps/XAML-WebView-control-sample-58ad63f7
  • Windows 8应用问题集锦(5):在WebView中,无法显示验证码

    问: 在 WebView 中,无法显示验证码。如何解决这个问题? 答: 当前,许多网站的注册页面,引用的是比较古老的Jquery1.3.1,而页面中验证码图片是通过异步ajax获取的的。当VS debug webview所在页面时,VS会抛出异常并询问是否需要把debuger attach到这个Win8 style app的进程。如果选yes,之后就能看到这是页面中的jquery脚本报的错。 当试图实例化xhr对象时候,代码错误地执行到了new ActiveXObject()上面...
  • Windows 8应用问题集锦(3):关于OAuth1.0的支持

    问: 在 Windows8 中,只能使用 OAuth2.0 认证,有些社交平台,如搜狐微博,目前支持支 OAuth1.0 协议。这个问题是否有解决方案? 答: 关于OAuth1.0的支持,建议可以关注这个项目: https://github.com/timheuer/callisto / http://visualstudiogallery.msdn.microsoft.com/0526563b-7a48-4b17-a087-a35cea701052 。 * OAuth helpers...
  • Windows 8开发问题集锦(4):WebView始终在布局的最上层

    问: WebView 始终在布局的最上层。如果使用 popup 控件或者 BottomAppBar 等始在其他控件之上的控件,也会被 WebView 挡住。如何解决? 答: 是的,其他控件不能被渲染在WebView之上。针对这个问题,我们可以采取一些应变方案,比如与AppBar的重叠,我们可以通过控制WebView的大小和边界来解除,如果某些控件必须要渲染在WebView的内容之上,我们可以使用 WebViewBrush 。更多信息,请参考 http://code.msdn.microsoft...
  • Windows 8 Metro应用问题集锦(2):IndexDB搜索的问题

    现在我们在使用IndexDB中遇到一个难题:字段不支持全文搜索,仅支持从第一个字符开始严格匹配。比如搜索abc,能匹配出abcd,但没法匹配出dabc。 请问这里是否有好的解决方案? 解答: 的确这是HTML5 IndexedDB当前的限制。IndexedDB不同于传统的关系型数据库,其数据还是基于键值对的形式来存储的,具体搜素的效率以及方式仍旧受其本身的所谓“标准”和当前的实现所限制。 所以当前对具体某个字段的全文搜索,或者更加精确的说是对应于SQL中的LIKE关键字...
  • Windows 8 Metro应用问题集锦(1):本地数据库的问题

    问题1:基于html5开发win8 Metro风格,系统有没有提供可用的、满足我们需求的本地数据库? 问题2:如果使用IndexDB来实现,在大容量数据读写、查询方面,性能上会不会存在问题? 解答: 当前只有并非由官方支持的SQLite可以作为本地数据库使用。可以参考这里: http://www.infoq.com/news/2012/07/sqlite-metro-winmobile 如果app是基于html5的,我们建议就是使用IndexDB这个HTML5标准的组件来进行操作...
  • Windows 8的企业部署场景

    在企业内,如何在使用Windows 8的新功能的同时,满足企业IT的管理,安全,效率等各方面的需求? 企业内的Win8应用能否不通过对公众开放的应用商店进行部署呢? 事实上,Windows 8提供强大而灵活的应用商店管理功能,例如: 通过组策略阻止或允许企业内设备访问Windows Store 不通过Windows Store直接向域内设备部署应用 已经安装的第三方Metro App可通过Applocker管理 详细,请参考: http:// technet...