小编Tom*_*ing的帖子

IE9,IE8,SVG,VML和doctypes

我正在我的ASP.NET Web应用程序中绘制形状.在IE9和其他浏览器中,我正在使用SVG,它工作得很好.在IE8及以下版本中,我使用的是VML.我发现当它处于IE8标准模式(不使用兼容性视图)时,IE8根本不显示VML.

我的doctype设置为<!DOCTYPE html>.如果我参加了doctype走完全,IE8进入怪癖模式和工作正常,但IE9然后去它的怪癖模式(而不是IE9标准),并且不显示SVG.

这是在测试页面上发生的,因此除了包含div的表单之外没有任何内容,div包含<svg>元素及其子元素或VML元素.

这里发生了什么?看起来我不应该为不同的浏览器更改doctype,而且Stack Exchange用户页面上的信誉图看起来也是一样的(IE8及以下的VML,其他人的SVG,HTML5 doctype)......

internet-explorer svg vml internet-explorer-8 internet-explorer-9

7
推荐指数
2
解决办法
8730
查看次数

iCal订阅的Outlook刷新间隔(网络搜索://)

当Outlook 2007和2010订阅互联网日历时(通过webcal://指向iCalendar或vCalendar文件的链接),他们多久会自动更新一次?有没有办法在下载的文件或Outlook首选项中配置它?我知道文件可以指定最小刷新间隔(通过X-PUBLISHED-TTL字段),但我没有看到明确指定建议间隔的方法.

icalendar outlook webcal

7
推荐指数
4
解决办法
3万
查看次数

如何在我的观看应用中显示通知内容?

我有一个接收远程通知的AppleWatch应用程序.我希望用户能够从自定义通知操作中打开监视应用程序,并查看通知所涉及的项目.但是,在我的监视应用程序中调试我的通知场景实际上从未将通知内容传递给我的根WKInterfaceController,并且只是在控制台中不断出现这样的错误:

[default] - [SPRemoteInterface _interfaceControllerID:]:2402:ComF:控制器的interfaceControllerID :( null)未找到(clientIdentifier =(null))

[default] - [SPRemoteInterface _interfaceControllerClientIDForControllerID:]:2414:ComF:interfaceControllerID的clientIdentifier :( null)未找到

[default] - [SPRemoteInterface didFinishHandlingActivity:]:2292:ComF:< - 插件控制器ID(null)(对象:(null))没有客户端标识符

无论我用一个自定义通知UI与否(WKUserNotificationInterfaceTypeCustomVS Default),敲击按钮或通知本身不经过我的根接口控制器的任何信息传递.

我已经handleActionWithIdentifier:forNotification:在我的root中实现了WKInterfaceController,但它永远不会被调用.我的扩展代表没有实现handleActionWithIdentifier:forNotification:withResponseInfo:.

我已经尝试将我的WKExtensionDelegate实现设置为UNUserNotificationCenter和实现的委托userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:,并且被调用,但我似乎无法访问我的根接口控制器来让它处理内容.我得到上面的错误.

值得注意的是,当我进行代码更改以及构建和运行时,事情似乎偶尔会起作用.但如果我重新运行相同的代码它永远不会工作 - 我总是得到上面的错误消息.

这应该怎么样?它必须是可能的 - 世界上每个使用手表应用程序的信使应用程序都可以做到这一点.但我无法在任何地方找到有关如何将通知有效负载可靠地导入WKInterfaceController子类的教程或代码示例.

更新:有趣的是,如果我将我的扩展委托设置为UNUserNotificationCenter代理和句柄userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:,它有时可以工作,但有时我得到上面列出的错误消息,当我试图获取时[WKExtension sharedExtension].rootInterfaceController,它就是nil.

apple-push-notifications ios watchkit

7
推荐指数
0
解决办法
242
查看次数

If-Modified-由IE9传递的HTTP头包括长度?

请澄清If-Modified-SinceIE9传递的这个奇怪的标题

在我的ASP.NET 4.0 Web应用程序中,我有一个通用处理程序(.ashx),它提供存储在数据库中的图像.为了提高效率,我正在处理一些与缓存相关的标头并传递缓存信息.

我试图解析If-Modified-Since标题内容,通常是从IE9,我经常得到DateTime解析错误.原来它发送这样的东西:

2011年11月28日星期一16:34:52 GMT; 长度= 8799

我正在通过使用正则表达式去除最后一部分来处理它.但我很好奇:它的长度是多长,有什么用?它是请求的URL的缓存数据的大小吗?

asp.net caching http last-modified internet-explorer-9

6
推荐指数
1
解决办法
904
查看次数

如何更改UIPopoverPresentationController后面的叠加层的不透明度?

我正在使用UIPopoverPresentationControlleriOS应用程序中的popovers.当它出现时,我想调暗popover背后的背景.我怎样才能做到这一点?在某个地方是否有API,或者当我出现弹片时,我是否必须在主视图上叠加一些内容?

uikit ios

6
推荐指数
3
解决办法
2662
查看次数

MPChangePlaybackRateCommand 是如何触发的?

我玩弄于iOS的音频功能,和我在看MPRemoteCommandCenterchangePlaybackRateCommand。我已经启用它,给它一个目标,并设置它的supportedPlaybackRates,但我没有看到任何相关的 UI 显示在控制中心或锁定屏幕中。我设置的其他命令,如向前跳、向后跳、喜欢、不喜欢和书签,都可以正确显示。

用户如何MPChangePlaybackRateCommand在 iOS 上触发 a ?

ios mpremotecommandcenter

6
推荐指数
1
解决办法
288
查看次数

如何防止 iOS 自动删除为离线播放而保存的 HLS 内容?

HLS 离线播放是在WWDC 2016 的这次会议上在 iOS 10 中宣布的。但在 21:20 左右,演示者正在谈论如何将下载的文件从放置位置移动AVAssetDownloadTask,因为系统可能需要如果磁盘空间不足,则删除它们。文档中提到了这种可能性:

重要的

如果可用磁盘空间极低,操作系统可能会自动删除下载的资源。在向用户展示资产可供播放之前,请验证该资产是否存在并且可以离线播放。

我正在构建一个应用程序来使用 HLS 播放受 DRM 保护的音频内容,并且我希望支持流式传输和下载,以便用户可以保存他们想要的文件以供离线播放。但如果下载的文件在未经用户许可的情况下被删除,那就是一种糟糕的体验。

所以我的问题是:如何防止系统删除下载的文件?即使文档明确表示不可以,我可以移动它们吗?有其他方法可以下载文件吗?iOS 11 中有一个新类,AVAssetDownloadStorageManager支持将存储管理策略设置为默认或重要...是否有任何保证系统不会在至少先询问用户的情况下删除“重要”下载的媒体?Roger Pantos 在WWDC 2017 的 HTTP Live Streaming 进展中表示,系统可能会在询问用户后删除资产,以便为软件更新腾出空间,但这并不意味着资产不会因其他原因而自动删除。

http-live-streaming ios avassetdownloadtask avassetdownloadstoragemanager

6
推荐指数
1
解决办法
628
查看次数

我是否必须验证每个 SKPaymentTransaction 订阅的收据?

我正在我的 iOS 应用程序中实现自动续订订阅。我的事务处理看起来像这样的伪代码:

func paymentQueue(_queue: SKPaymentQueue, updatedTransactions transactions:[SKPaymentTransaction]) {
  for (t in transactions) {
    let data = Data(contentsOf: getReceiptUrl())

    //this is actually async, but for simplicity here it's just a straight return
    if verifyReceiptWithServer(data) == .success {
      print("Verified receipt successfully!")
    }
    queue.finishTransaction(t)
  }
}
Run Code Online (Sandbox Code Playgroud)

如果订阅在我的应用程序未处于活动状态时续订多次,则我可以在此处为每个产品获得不止一笔交易。有时,应用程序还会在重新安装时立即获取大量旧交易。我需要验证每笔交易吗?还是每人只做一个更好productIdentifier?或者甚至可能每次调用一次paymentQueue:updatedTransactions:?如果磁盘上的收据数据始终相同,那么我每次都会向服务器发送相同的二进制数据,有时可能会很多。

答案中的文档链接值得赞赏。

storekit ios receipt-validation skpaymenttransaction

6
推荐指数
1
解决办法
319
查看次数

如何在不遭受缓存CSS问题的情况下更新Web应用程序?

说我有一个网络应用程序.我添加了一些功能,这些功能需要添加到我的Web服务器上的一些现有CSS文件.我将新功能和CSS添加部署到我的服务器,它们运行良好.访问该网站的用户可能会在他们的浏览器中缓存CSS,这意味着新功能看起来很破碎/怪异,直到他们手动刷新页面或其缓存过期.如果我的服务器和用户之间有一个缓存服务器,问题可能会更糟,在这种情况下,即使是手动刷新也无济于事(我不认为).

有没有一种常见的方法来避免这种情况?

编辑:我正在运行ASP.NET 4.0.

css web-deployment

5
推荐指数
1
解决办法
2004
查看次数

如何将 UICollectionViewDiffableDataSource reorderHandlers 与自定义组合布局一起使用?

从 iOS 14 开始,UICollectionViewDiffableDataSource 有一个reorderHandlers属性。它在一些示例代码中进行了演示,并在WWDC 2020关于可比较数据源的进展的会议中进行了讨论。演示者指出您必须提供一个canReorderdidReorder闭包才能启用该功能。

示例代码在具有列表布局配置的集合视图中使用它,并使用重新排序附件配置列表单元格。和canReorder方法didReorder按预期调用。但是,如果我从单元中删除重新排序配件,重新排序将不再起作用 - 它不会调用任何一个关闭。它在我的应用程序中也不起作用,我在应用程序中有一个使用组合布局的网格布局。

如何在UICollectionViewDiffableDataSource没有列表单元的情况下启用重新排序并重新排序配件?

ios uicollectionview uicollectionviewdiffabledatasource

5
推荐指数
1
解决办法
510
查看次数