我在寻找什么:
我想将我的应用程序打包为不同的黑莓os版本(5,6和7)。这样用户就不必知道他需要什么版本,只需从网站安装应用程序即可。
我已经找到了:
我认为我的问题是:
我不知道如何在web目录中打包这三个目录。我想我只需要一个文件夹和一个JAD文件,以某种方式管理我的应用程序的安装版本?
你能给我一些见解。
答案 0 :(得分:4)
如果您的应用仅使用OS5 API
如果您使用OS5 BlackBerry JRE(Java运行时环境)开发应用程序,那么它将在运行OS5,6和7的所有设备上运行.BlackBerry OS向后兼容以前的操作系统,因此您不必担心关于各个OS版本的打包。
至于打包应用程序,您只需要将可交付件/ Standard / 5.0.0中的appname.jad和appname.cod文件上传到您的Web服务器,然后将用户从他们的BB手机上导向它们,应该提示您下载并安装它。
如果您的应用使用多个API
您需要为正在使用的每个API版本分发cod和jad文件。将这些上载到您的Web服务器,然后使用脚本来检测用户的操作系统版本。这是一个PHP脚本:
<?php
$strUserAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($strUserAgent, "BlackBerry") !== FALSE){
$blnOSFound = false;
echo "This is a BlackBerry.";
/**
* BlackBerrys have 2 user agent string formats, check for both:
*
* Mozilla/5.0 (BlackBerry; U; BlackBerry 9860; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.296 Mobile Safari/534.11+
* BlackBerry9700/5.0.0.351 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/123
*
*/
$arrAgentParts = explode(" ", $strUserAgent);
for ($i=0;$i<count($arrAgentParts);$i++){
$strAgentPart = $arrAgentParts[$i];
if (strpos($strAgentPart, "BlackBerry") === 0 &&
strpos($strAgentPart, "/") !== FALSE){
$intPositionOfSlash = strpos($strAgentPart, "/");
$strOSVersion = substr($strAgentPart, $intPositionOfSlash+1, strlen($strAgentPart));
$blnOSFound = true;
break;
} else if (strpos($strAgentPart, "Version") === 0){
$intPositionOfSlash = strpos($strAgentPart, "/");
$strOSVersion = substr($strAgentPart, $intPositionOfSlash+1, strlen($strAgentPart));
$blnOSFound = true;
break;
}
}
if ($blnOSFound){
echo " OS Version: ".$strOSVersion;
$intMajorOSVersion = substr($strOSVersion, 0, 1);
//Redirect user to the jad file for their OS version
switch ($intMajorOSVersion){
case 5:
Header("Location: 5.0.0/myapp.jad");
break;
case 6:
Header("Location: 6.0.0/myapp.jad");
break;
case 7:
Header("Location: 7.0.0/myapp.jad");
break;
default:
echo "Unsupported OS version";
break;
}
} else {
echo " Could not find OS version";
}
} else {
echo "Not a BlackBerry";
}
?>
你可能想要解决这个问题,删除echo
语句。
为多个API开发应用时,有两种方法: