cod*_*der 1 java blackberry blackberry-jde blackberry-simulator blackberry-webworks
我正在开发一个应用程序,我使用浏览器字段加载其中的html文件.我的代码如下.
Main.java
//pushing screen to browser field page..
public Main()
{
// Push a screen onto the UI stack for rendering.
pushScreen(new WebViewController());
}
Run Code Online (Sandbox Code Playgroud)
WebViewController.java
BrowserFieldConfig bfConfig = new BrowserFieldConfig();
bfConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,
BrowserFieldConfig.NAVIGATION_MODE_POINTER);
bfConfig.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED,
Boolean.TRUE);
bfConfig.setProperty(BrowserFieldConfig.ALLOW_CS_XHR, Boolean.TRUE);
bfConfig.setProperty(BrowserFieldConfig.INITIAL_SCALE, new Float(0.0));
bwf = new BrowserField(bfConfig);
add(bwf);
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
// TODO Auto-generated method stub
bwf.requestContent("local:///html/index.html");
}
}, 500, false);
Run Code Online (Sandbox Code Playgroud)
我的所有服务器代码和UI设计分别在javascript和html页面中,这些页面从index.html页面调用...
根据以下代码,它在模拟器中工作(执行)并在运行时从服务器获取数据.但是当我在BlackBerry设备上运行时,只有UI设计从index.html页面加载,但没有从服务器获取数据.我不知道错误是什么.我也在Blackberry设备中启用了javascript,但它仍然无法运行..
由于我是这个黑莓开发新手,无法找到我的应用程序在Blackberry设备中运行时出现问题.
根据以下代码,我应该添加任何外部代码来从服务器获取数据(例如在签名后只是访问Blackberry设备中的互联网)
在模拟器中,它可以很好地从服务器获取数据.在Blackberry设备中执行时,仅加载主页面UI(index.html中的UI),但不从服务器获取数据.
谁能帮我这个.....
这个问题是问题的变化"为什么我在BlackBerry上遇到连接问题".我会试着告诉你如何解决它们.
网络连接非常复杂,不像j2me,android或iphone连接,你大多要求系统打开TCP/HTTP/UDP连接.RIM介绍了网络传输.我不确定原因 - 或者他们想让开发人员有权选择特定的传输,或者因为BES管理员/运营商可能限制某些连接或其他原因.但BB开发人员必须指定他想要用于设备上当前连接的传输的副作用.默认连接是直接TCP(通过APN运营商设置)的戏剧性事物.直接TCP在模拟器上运行良好.但BB设备上最常用的连接是BIS-B和WiFi.此外,BIS-B对于普通开发者来说是不可用的,他们最近刚刚为所有人打开了它.
5.0之前,OS开发人员拥有大量代码来确定设备上可用的传输,并且传输尝试按顺序打开时存在循环.RIM ConnectionFactory在5.0 OS中引入,它提供了打开确定可用传输和打开连接的标准机制(示例).
您始终必须使用ConnectionFactory要打开连接的位置.如果直接通过Connector或通过远程主机,则无关紧要BrowserField.你必须使用ConnectionFactory.
戏剧性的是,即使你使用它,你也无法达到BIS-B运输.正如我之前提到的,它仅适用于联盟成员.RIM目前不限制任何开发人员使用BIS-B.但我不认为他们也给出了任何例子.要允许ConnectionFactory打开BIS-B,您需要下一行:
connFact.setTransportTypeOptions(TransportInfo.TRANSPORT_BIS_B,
new BisBOptions("mds-public"));
Run Code Online (Sandbox Code Playgroud)
这只是对黑莓手机连接的一个小小的总结.但它应该给你正确的方向来解决你的问题.