首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >黑莓5.0 -点击BrowserField处理链接

黑莓5.0 -点击BrowserField处理链接
EN

Stack Overflow用户
提问于 2012-08-13 01:18:36
回答 3查看 1.4K关注 0票数 4

当用户实际单击链接时,我正在尝试处理BrowserField中的事件。我研究了BrowserFieldListener,尝试了它的documentCreated()方法,但当页面开始加载时,它会给我一个响应。我想要一个触发器,当用户单击browserField内的链接时。

这里我漏掉了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-13 09:50:04

覆盖ProtocolController的handleNavigationRequest(),如

代码语言:javascript
复制
ProtocolController controller = new ProtocolController(browserField) {
    public void handleNavigationRequest(BrowserFieldRequest request) throws Exception {
         /* 
         Here you get the redirection link using 
           request.getURL() 
         and do what you want to do 
          */
      // to display url in browserfield use
      InputConnection inputConnection = handleResourceRequest(request);
      browserField.displayContent(inputConnection, request.getURL()); 

    }
};

browserField.getConfig().setProperty(BrowserFieldConfig.CONTROLLER, controller);
票数 6
EN

Stack Overflow用户

发布于 2012-08-28 19:43:01

使用我使用的以下类

代码语言:javascript
复制
public class CacheProtocolController extends ProtocolController{
    public CacheProtocolController() {
        super(browserField);     
    }

    /**
    * Handle navigation requests (e.g., link clicks)
    */
    public void handleNavigationRequest(final BrowserFieldRequest request) throws Exception {
        UiApplication.getUiApplication().invokeAndWait(new Runnable() {
            public void run() {
                // TODO Auto-generated method stub
                Logger.debug("*******URL*******",request.getURL() );
        });
    }

    /**
    * Handle resource request (e.g., images, external css/javascript resources)
    */
    public InputConnection handleResourceRequest(BrowserFieldRequest request) throws Exception {
        return super.handleResourceRequest(request);
    }
}
票数 3
EN

Stack Overflow用户

发布于 2012-08-28 14:40:37

我已经用下面的类解决了这个问题:

代码语言:javascript
复制
public class CacheProtocolController extends ProtocolController{
    private SparseList sparseList = null;
    private int imageIndex ;
    private int click = 0;
    private BrowserField browserField = null;

    public CacheProtocolController(BrowserField browserField,SparseList sparseList,int imageIndex ) {
        super(browserField);
        this.sparseList = sparseList;
        this.imageIndex = imageIndex;
    }

    /**
    * Handle navigation requests (e.g., link clicks)
    */
    public void handleNavigationRequest(final BrowserFieldRequest request) throws Exception {
        UiApplication.getUiApplication().invokeAndWait(new Runnable() {
            public void run() {
                Logger.debug("*******URL*******",request.getURL() );
                String requestUrl = null;
                requestUrl = FileManipulations.replaceAll(request.getURL(), "file:///SDCard/BlackBerry/pictures/", "../");
                Logger.debug("*******requestUrl*******",requestUrl );
                Enumeration enumeration = sparseList.elements();
                while (enumeration.hasMoreElements()) {
                    final News news = (News) enumeration.nextElement();
                    if(news.getDetailsURL().equalsIgnoreCase(requestUrl)){
                        if(click == 1){
                            click = 0;
                            UiApplication.getUiApplication().pushScreen(new DetailedNewsScreen(news.getImageURL() , imageIndex));
                        } else
                            click++;
                    }
                }
            }
        });
    }

    /**
    * Handle resource request (e.g., images, external css/javascript resources)
    */
    public InputConnection handleResourceRequest(BrowserFieldRequest request) throws Exception {
        return super.handleResourceRequest(request);
    }

}

并在MainScren中使用以下内容

代码语言:javascript
复制
browserField = new BrowserField();
browserField.getConfig().setProperty(BrowserFieldConfig.CONTROLLER, new CacheProtocolController(browserField,List,index));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11924182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档