2013-07-15 19 views
0

我是初学者黑莓的应用程序开发。如何在blackberry-eclipse应用程序中使用html资源?

我已经成功安装了黑莓插件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(); 
} 

mainscreen:

public final class Ramadan extends MainScreen 
{ 

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

编辑:我的尝试:

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

其中有此错误

资产/指数没有导航请求处理。 html

+0

你是什么意思的“呼叫”。你想访问它的内容,还是显示它? – Kevin

+0

我想显示html页面 – Myworld

+0

你可以使用'BrowserField',它的'displayContent'方法可以把你的html作为参数。尽管我现在不想发布答案,但是太忙了,实际上并没有试用它。 – Kevin

回答

0

由于the link that @Turdnugget supplied说:使用一个文件夹结构

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

这意味着,即使你把index.html的成assets文件夹,黑莓构建过程和/或运行时会拉平(即忽略)的目录结构,因此你必须加载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文件夹内。

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

如果您没有这样创建您的项目,您可能会发现您的应用程序不包含您创建的assets文件夹。你可以大概通过在Eclipse中右键点击你的项目并选择属性来解决这个问题。您可以将assets文件夹添加到使用该对话框中的构建路径:

enter image description here

并注意assets应在订单和出口标签显示为好。

但是,我认为最简单的方法就是创建和使用BlackBerry Eclipse插件所需的项目。这也会让其他BlackBerry Java开发人员更熟悉您的代码。在我看来,您应该为Android项目保存Android命名约定。

相关问题