2011-06-21 63 views
0

我正在为BlackBerry应用程序设置OTA下载。我有一个包含带有多个COD文件的JAD文件的文件夹,以及一个带有指向JAD文件链接的简单HTML下载页面。下载对每个设备首次正常工作,但是当我在JAD文件中增加MIDlet-Version:的更新版本(新的JAD和COD文件)并从设备下载时,下载的显示页面仍显示旧的版本,当我点击下载按钮时,对话框询问我是否想用新版本1.0替换旧版本1.0。如何以编程方式清除BlackBerry中的Web浏览器缓存?

如果我转到选项/缓存并清除缓存,然后重新下载页面并单击OTA链接,它现在可以正确显示新版本可用1.1。因此,似乎设备上的浏览器正在缓存旧的JAD文件。

由于清除浏览器的缓存修复了问题,有没有什么办法可以通过编程来实现?无论如何,我会从我的BB应用程序打开浏览器实例,所以如果可能的话,这很容易做到。另外,是否有任何属性/属性,我可以在JAD文件中设置,以防止它被缓存?

回答

2

出于安全原因,BlackBerry不允许第三方应用程序操纵浏览器历史记录或缓存。但是,您看到的问题的解决方法是将Cache-Control: no-cache HTTP标头添加到为.jad文件提供服务的页面。这将迫使黑莓浏览器每次都寻找新版本。

+0

我有no-cache标题已经在服务JAD文件的页面。问题似乎是JAD本身被缓存。 – MusiGenesis

+0

通过'提供JAD文件的页面',你的意思是说,当你浏览到实际的.jad文件时,这个头文件将被返回,或者是指你从哪个页面访问jad文件?如果是后者,那么这将解释为什么jad文件仍然被缓存。 – Laepdjek

+0

@Laepdjek:通过“提供JAD文件的页面”,我的意思是包含可点击链接到JAD文件的页面。 BB浏览器有时会缓存JAD,因此当我在我的网站上放入新版本的JAD/COD时,当用户点击下载链接时,会弹出一个消息,询问他们是否安装了旧版本。如果发生这种情况,我清除浏览器缓存并再次单击该链接,然后*然后*我下载最新版本。 – MusiGenesis

0

例子:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Cache-Control" content="no-cache"/> 
<meta http-equiv="Pragma" content="no-cache"/> 
<meta http-equiv="Expires" content="0"/> 
<title>my web Page</title> 
</head> 
<body>  
</body> 
</html> 
相关问题