2012-05-10 86 views
0

我一直试图在浏览器字段中显示来自SD卡的一些HTML内容,并且每次都不使用HTML数据渲染,而是使用浏览器字段呈现基本URL。我试图找到相同的原因并没有找到任何解决方案。我没有找到任何明确说明何时调用该基本URL的文档。可以解释为什么以及何时该基本URL被调用?任何帮助是高度赞赏...Blackberry BrowserField Base Url

在此先感谢。

回答

1

可能会帮助你。这样的回答解释了如何以两种方式

1)读取数据为文本文件,并将其添加到字符串,dislay的内容像下面的方式

StringBuffer sb1;     

       FileConnection fconn = (FileConnection)Connector.open("filepath="file:///SDCard/BlackBerry/documents/HtmlFileName.txt", Connector.READ_WRITE); 
       if (fconn.exists()) 
       { 
        InputStream input=fconn.openDataInputStream(); 
        sb1=new StringBuffer(); 
        int chars,i=0; 
        while((chars=input.read())!=-1) 
        { 
         sb1.append((char)chars); 
        } 

       } 

    String str=sb1.toString(); 

    VerticalFieldManager vfm = new VerticalFieldManager(VERTICAL_SCROLL|VERTICAL_SCROLL_MASK); 
    BrowserFieldConfig browserFieldConfig = new BrowserFieldConfig(); 
    browserFieldConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE, BrowserFieldConfig.NAVIGATION_MODE_POINTER); 
    browserFieldConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE, BrowserFieldConfig.NAVIGATION_MODE_CARET); 
    browserFieldConfig.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED,Boolean.TRUE); 
    browserFieldConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE_POINTER.toString(),Boolean.TRUE); 
    browserFieldConfig.setProperty(BrowserFieldConfig.ALLOW_CS_XHR,Boolean.TRUE); 
    BrowserField browser_field=new BrowserField(browserFieldConfig); 
    browser_field.displayContent(str,""); 
     vfm.add(browser_field); 
     add(vfm); 

2)您可以直接调用,显示从SD卡的HTML内容从browserfield像下面的页面

String url="file:///sdcard/index.html";//specify exact path if resource then local:///.if sd card file:/// 
    VerticalFieldManager manager=new VerticalFieldManager(VERTICAL_SCROLL|VERTICAL_SCROLLBAR|HORIZONTAL_SCROLL|HORIZONTAL_SCROLLBAR){ 
       protected void sublayout(int maxWidth, int maxHeight) { 
        super.sublayout(640,Display.getHeight()); 
        setExtent(640,Display.getHeight()); 
       } 
      }; 
      BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig(); 
       myBrowserFieldConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER); 
       BrowserField browserField = new BrowserField(myBrowserFieldConfig); 
       history=browserField.getHistory(); 
       browserField.requestContent(url); 
       manager.add(browserField); 
       browserField.requestContent(url); 
       add(manager); 
0

我意识到这是有点旧,但我有同样的问题,并想分享我是如何解决我的情况。

事实证明,如果您尝试导航到BrowserField中的新页面,并且无法加载新页面或发生错误,则BrowserField将加载基本URL。

这个问题发生了两次。在一个例子中,我的程序抛出了一个运行时异常,它被无声地处理(偶然)。这导致导航失败并加载基本URL。在第二种情况下,我试图导航的页面不存在(通过拼写错误或错误使用文件名或位置)。

需要说明的是,这是加载的原始页面的基本URL,而不是加载失败的页面。

我希望这有助于!

相关问题