Mobile 使用JAD文件为不同操作系统版本打包Blackberry应用程序
我要找的是: 我想为不同的黑莓操作系统版本(5、6和7)打包我的应用程序。这样用户就不必知道他需要什么版本,只需从网站上安装应用程序 我已经发现:Mobile 使用JAD文件为不同操作系统版本打包Blackberry应用程序,mobile,blackberry,distribution,packaging,blackberry-eclipse-plugin,Mobile,Blackberry,Distribution,Packaging,Blackberry Eclipse Plugin,我要找的是: 我想为不同的黑莓操作系统版本(5、6和7)打包我的应用程序。这样用户就不必知道他需要什么版本,只需从网站上安装应用程序 我已经发现: 我需要查看web目录(有三个目录,每个版本一个) 我需要一个JAD文件而不是alx文件,因为它是一个web发行版(在web中也没有alx,所以到目前为止还可以) 我认为我的问题是: 我不知道如何将这三个目录打包到web目录中。我想我只需要一个文件夹和一个JAD文件,以某种方式管理我的应用程序安装的版本 如果你的应用程序只使用OS5 API,你能给
- 我需要查看web目录(有三个目录,每个版本一个)
- 我需要一个JAD文件而不是alx文件,因为它是一个web发行版(在web中也没有alx,所以到目前为止还可以)
如果你的应用程序只使用OS5 API,你能给我一些见解吗 如果您使用OS5 BlackBerry JRE(Java运行时环境)开发应用程序,那么它将在所有运行OS5、6和7的设备上运行。BlackBerry操作系统与以前的操作系统向后兼容,因此您不必担心单个操作系统版本的打包问题 至于打包应用程序,您只需将可交付成果/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开发应用程序时,有两种方法:
但是,如果应用程序在较新的操作系统版本上使用较新的API呢?例如,我正在开发一个应用程序,它在某些地方使用特定于版本的API(主要用于在可用时使用较新的UI控件),因此我有多个针对不同JRE版本编译的版本。为了方便发布,正确的打包方法是什么?我已经更新了我的答案来涵盖这一点,很抱歉,从你最初的问题中我认为你只希望使用一个API构建。其中一个问题是,构建多个API的整个过程有点麻烦,所以只有在绝对必要的情况下才能这么做!谢谢你的更新。我在我的项目中使用预处理器方法。顺便说一句,我不是OP,但OP的问题适用于我,因为我可能会在我的应用程序的初始版本中进行OTA下载。啊,对了,我希望答案有帮助,有机会投票吗?