0

我是黑莓应用程序开发的初学者。

我已经在eclipse中成功安装了黑莓插件。我的第一个应用程序需要从我在项目中创建的名为“assets”的文件夹中加载 html 文件。那么如何加载 html 文件“assets/index.html”

public static void main(String[] args)
{
    // Create a new instance of the application and make the currently
    // running thread the application's event dispatch thread.
    Ramadanclass theApp = new Ramadanclass();       
    theApp.enterEventDispatcher();
}

主屏幕:

public final class Ramadan extends MainScreen
{ 

    public Ramadan()
    {                   
        setTitle("Ramadan");    
    }
} 

编辑:我尝试了什么:

BrowserField myBrowserField = new BrowserField(); 
add(myBrowserField); 
myBrowserField.requestContent("assets/index.html"); 

有这个错误

assets/index.html 没有导航请求处理程序

4

1 回答 1

0

正如@Turdugget 提供的链接所说:

BrowserField 类不使用文件夹结构访问资源。BrowserField 类显示找到的第一个与指定文件名匹配的资源。

这意味着即使您将 index.html 放入assets文件夹,BlackBerry 构建过程和/或运行时也会展平(即忽略)您的目录结构,因此您必须加载 html 文件:

myBrowserField.requestContent("local:///index.html");

正如您可以想象的那样,如果您index.html的项目中只有一个文件命名,这可以正常工作,但是如果您有两个具有该名称的文件,在不同的文件夹中,浏览器字段可能不会加载您想要的文件。我有项目,我确实有不同版本的 html 文件,这些文件根据设备或应用程序的版本(完整与免费)加载。所以,我希望能够将我的 html 资源存储在不同的文件夹中。

为此,我使用了以下代码BrowserField

  browser = new BrowserField();
  add(browser);

  InputStream content = getClass().getResourceAsStream("/resourcesWeb/index.html");     
  try {
     byte[] html = IOUtilities.streamToBytes(content);
     browser.displayContent(new String(html), "http://localhost");
  } catch (IOException e) {
     e.printStackTrace();
  }

为此,我将文件存储index.html在一个名为resourcesWeb(随意命名)的文件夹中,该文件夹位于顶级res文件夹内。

请注意,这不是安卓。通常没有assets目录。当您使用 BlackBerry Eclipse 插件创建新项目时,它会为您创建一个src和一个res文件夹。我会用那个。如果需要,请创建一个新项目。然后,将所有非源代码资源(html、xml、图像等)保存在该res文件夹下的某个位置。

如果您没有以这种方式创建项目,您可能会发现您的应用在构建时没有包含assets您创建的文件夹。您可以通过右键单击 Eclipse 中的项目并选择Properties来解决此问题。您可以assets使用此对话框将文件夹添加到构建路径:

在此处输入图像描述

请注意,它也assets应该显示在Order and Export选项卡中。

但是,我认为按照 BlackBerry Eclipse 插件想要的方式创建和使用项目是最简单的。这也将使其他看到您的代码的 BlackBerry Java 开发人员更熟悉您的项目。在我看来,您应该为 Android 项目保存 Android 命名约定。

于 2013-07-17T01:38:27.260 回答