zoukankan      html  css  js  c++  java
  • chromium对网页获取favicon

    每一个网页都有一个favicon,在历史记录的保存中须要用到。在content文件夹下,这个没有实现。

    以下说一下我的实现过程:

    web_contents_impl.cc文件里有方法:WebContentsImpl::OnUpdateFaviconURL

    这种方法是内核解析到favicon之后,给chromium 的browser process反馈之后,browser process的响应方法。

    该方法的实现例如以下:

      FOR_EACH_OBSERVER(WebContentsObserver, observers_,
                        DidUpdateFaviconURL(page_id, candidates));

    这里的observer,就是shell.cc

    我在shell.cc加入�方法例如以下:

    void Shell::DidUpdateFaviconURL(int32 page_id,
                                       const std::vector<FaviconURL>& candidates) {
      UpdateFaviconURL(page_id, candidates);
    }


    然后,在shell_android.cc文件里加入�方法例如以下:

    void Shell::UpdateFaviconURL(int32 page_id,
                                       const std::vector<FaviconURL>& candidates) {
      JNIEnv* env = AttachCurrentThread();
      GURL favicon_url = candidates.back().icon_url;
      ScopedJavaLocalRef<jstring> j_favicon_url = base::android::ConvertUTF8ToJavaString(env, favicon_url.spec());
      return Java_Shell_UpdateShellFaviconUrl(env, java_object_.obj(),j_favicon_url.obj());
    }

    这样,Shell.java 就能够得到faviicon了

        @CalledByNative
        private void UpdateShellFaviconUrl(String faviconUrl) {
            mShellFaviconUrl = faviconUrl;
        }

  • 相关阅读:
    python易错点2
    python易错点1
    Spring:注解组件注册
    KubeSphere建立多租户系统
    Centos7.7下KubeSphere最小化安装和定制化配置安装
    安装create-react-app
    查看react版本等信息
    react自动生成React组件命令
    sqlserver 随机数
    Error while downloading 'http://java.sun.com/xml/ns/javaee/javaee_web_services_client_1_2.xsd'
  • 原文地址:https://www.cnblogs.com/blfshiye/p/3763353.html
Copyright © 2011-2022 走看看