解决Android 离线文档 不能搜索的问题

来源:互联网 发布:杰科网络电视机顶盒gk 编辑:程序博客网 时间:2024/05/23 02:06

最近开始学安卓,发现用Android Studio 下载的doc文档不能直接搜索。
自己写了个小程序解决了,将程序放到docs文件夹中,运行就行了
注意:
1.docs路径不能包含中文或空格
2.修改前最好备份docs文件夹,以防修改失败
3.仅在 2017/12/21 下载的文档上测试通过,如果谷歌更新文档可能会失效。

链接: https://pan.baidu.com/s/1nu9EDkP 密码: v2gn

下面阐述一下原理,感兴趣的可以看一看
经过观察发现主要有以下几个原因:
1.所有html文件中关联几个JavaScript文件的地址错误
例如:
在”SDK路径/Docs/index.html” 中,下例5个js文件用的是相对路径,这并没有问题。但在”SDK路径/Docs/reference/packages.html”中,内容还是一摸一样的,这就导致js文件读取失败,事实上,所有的html中的该处都是一样的。

 所以只要把所有的路径换为绝对路径就行了

其中

src=”https://developer.android.com/ytblogger_lists_unified.js”

这个文件也是必要的,但docs中并没有,需要自己下载

<script src="https://developer.android.com/ytblogger_lists_unified.js" defer></script><script src="/jd_lists_unified_en.js?v=17" defer></script><script src="/reference/lists.js?v=17" defer></script><script src="/reference/gcm_lists.js?v=17" defer></script><script src="/reference/gms_lists.js?v=17" defer></script>

2.JavaScript文件内容有误
主要的js文件就是上面列出的几个,其中ytblogger_lists_unified.js需要从原网页上抓取
jd_lists_unified_en.js 这个文件也没有。但docs文件夹下有个jd_lists_unified.js文件,对它稍作更改,并重命名就可以得到jd_lists_unified_en.js 。
jd_lists_unified.js部分内容如下:

window.METADATA = window.METADATA || {};METADATA[''] = {};METADATA[''].about = [];METADATA[''].design = [];METADATA[''].develop = [];METADATA[''].distribute = [];METADATA[''].extras = [];

将所有的METADATA[”] 改为METADATA[‘en’]。然后从源网页上找到android_metadata_en.js这个文件,将里面的全部内容复制到jd_lists_unified.js中,再删除METADATA[”] = {};这也行,保存,重命名为jd_lists_unified_en.js 。

经过以上更改,应该能够搜索了,但输入内容后,候选内链接并不能点击。还需要修改"SDK路径/Docs/assets/js/doc.js"文件。修改内容如下:(注释了if(normalClick){...})
  function onSuggestionClick(e) {   var normalClick = e.which === 1 && !e.ctrlKey && !e.shiftKey && !e.metaKey;    /*if (normalClick) {      e.preventDefault();    }*/    // When user clicks a suggested document, track it    var url = $(e.currentTarget).attr('href');    ga('send', 'event', 'Suggestion Click', 'clicked: ' + url,        'query: ' + $('#search_autocomplete').val().toLowerCase(),        {hitCallback: function() {          if (normalClick) {            document.location = url;          }        }});  }

至此,docs文档已经修改完成

阅读全文
0 0
原创粉丝点击