mirror of
https://gitee.com/willfree/minbrowser.git
synced 2026-06-18 13:26:18 +08:00
调通了浏览记录功能
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
https%3A%2F%2Fwww.baidu.com%2F %E7%99%BE%E5%BA%A6%E4%B8%80%E4%B8%8B%EF%BC%8C%E4%BD%A0%E5%B0%B1%E7%9F%A5%E9%81%93 2020%E5%B9%B412%E6%9C%8803%E6%97%A5+21%3A00
|
||||
https%3A%2F%2Fwww.baidu.com%2Fs%3Fie%3Dutf-8%26f%3D8%26rsv_bp%3D1%26rsv_idx%3D1%26tn%3Dbaidu%26wd%3Dbilibili%26fenlei%3D256%26rsv_pq%3Ddfe6c2490001bc8d%26rsv_t%3D9eb6APCK805M62E1oDNspwDlbJKIyeYTKBtMx3%252B5yGeQ9m57Zb3DXshNNdE%26rqlang%3Dcn%26rsv_enter%3D1%26rsv_dl%3Dib%26rsv_sug3%3D12%26rsv_sug1%3D9%26rsv_sug7%3D101%26rsv_sug2%3D0%26rsv_btype%3Di%26inputT%3D1810%26rsv_sug4%3D2767 bilibili_%E7%99%BE%E5%BA%A6%E6%90%9C%E7%B4%A2 2020%E5%B9%B412%E6%9C%8803%E6%97%A5+21%3A00
|
||||
https%3A%2F%2Fwww.bilibili.com%2F %E5%93%94%E5%93%A9%E5%93%94%E5%93%A9+%28%E3%82%9C-%E3%82%9C%29%E3%81%A4%E3%83%AD+%E5%B9%B2%E6%9D%AF%7E-bilibili 2020%E5%B9%B412%E6%9C%8803%E6%97%A5+21%3A00
|
||||
https%3A%2F%2Fwww.bilibili.com%2F %E5%93%94%E5%93%A9%E5%93%94%E5%93%A9+%28%E3%82%9C-%E3%82%9C%29%E3%81%A4%E3%83%AD+%E5%B9%B2%E6%9D%AF%7E-bilibili 2020%E5%B9%B412%E6%9C%8803%E6%97%A5+21%3A01
|
||||
https%3A%2F%2Fwww.baidu.com%2Fs%3Fie%3Dutf-8%26f%3D8%26rsv_bp%3D1%26rsv_idx%3D1%26tn%3Dbaidu%26wd%3Dbilibili%26fenlei%3D256%26rsv_pq%3Ddfe6c2490001bc8d%26rsv_t%3D9eb6APCK805M62E1oDNspwDlbJKIyeYTKBtMx3%252B5yGeQ9m57Zb3DXshNNdE%26rqlang%3Dcn%26rsv_enter%3D1%26rsv_dl%3Dib%26rsv_sug3%3D12%26rsv_sug1%3D9%26rsv_sug7%3D101%26rsv_sug2%3D0%26rsv_btype%3Di%26inputT%3D1810%26rsv_sug4%3D2767 bilibili_%E7%99%BE%E5%BA%A6%E6%90%9C%E7%B4%A2 2020%E5%B9%B412%E6%9C%8803%E6%97%A5+21%3A01
|
||||
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>历史记录</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>MIN-Browser Browsing History</h1>
|
||||
<hr>
|
||||
<ul id="list"></ul>
|
||||
<hr>
|
||||
</body>
|
||||
<script>
|
||||
// function testShow() {
|
||||
// var test1={id:"1",title:"百度两下",urlString:"https://www.baidu.com"};
|
||||
// var test2={id:"2",title:"淅沥淅沥",urlString:"https://www.bilibili.com"};
|
||||
// var test3={id:"3",title:"码云",urlString:"https://gitee.com/"};
|
||||
// var bk=[test1,test2,test3];
|
||||
// showBookmarks(bk);
|
||||
// }
|
||||
var namecache="history_name";
|
||||
var timecache="history_time";
|
||||
function setCacheName(name) {
|
||||
namecache=name;
|
||||
}
|
||||
function setCacheTime(time) {
|
||||
timecache=time;
|
||||
}
|
||||
function addOneHistory(history_url) {
|
||||
var bookmark={time:timecache,title:namecache,urlString:history_url};
|
||||
var bk=[bookmark];
|
||||
showBookmarks(bk);
|
||||
}
|
||||
// 唯一ID产生器
|
||||
// function next_id(){
|
||||
// var current_id = 0;
|
||||
// return function (){
|
||||
// return ++current_id;
|
||||
// }
|
||||
// }
|
||||
// var g = next_id();
|
||||
// 显示条目
|
||||
function showBookmarks(bk) {
|
||||
for(var i=0;i<bk.length;i++){
|
||||
var object=bk[i];
|
||||
// 获取元素:链接
|
||||
var li=document.createElement("li");
|
||||
li.innerHTML=object.time+" "+object.title+" "+(object.urlString).link(object.urlString)+" ";
|
||||
// li.id=g();
|
||||
// javaSetter.addMap(li.id,object.urlString);
|
||||
// li.style="display:inline;";
|
||||
// 获取元素:按钮
|
||||
// var btn=document.createElement("button");
|
||||
// btn.innerText="Delete";
|
||||
// btn.id=g();
|
||||
// btn.style="background-color:red;color:white";
|
||||
// btn.onclick=function () {
|
||||
// // alert(this.id);
|
||||
// // 先执行删除数据的操作
|
||||
// javaSetter.deleteBookmarkById(this.id-1);
|
||||
// // 再删除页面元素
|
||||
// document.getElementById(this.id-1).remove();
|
||||
// document.getElementById(this.id).remove();
|
||||
// };
|
||||
// 获取元素:换行
|
||||
// var br=document.createElement("p");
|
||||
// br.innerHTML="";
|
||||
// 显示元素到界面
|
||||
var ul=document.getElementById("list");
|
||||
ul.appendChild(li);
|
||||
// ul.appendChild(btn);
|
||||
// ul.appendChild(br);
|
||||
}
|
||||
}
|
||||
// testShow();
|
||||
</script>
|
||||
</html>
|
||||
@@ -5,8 +5,10 @@ package cn.minbrowser.view;
|
||||
*/
|
||||
import cn.minbrowser.MainApp;
|
||||
import cn.minbrowser.model.Bookmark;
|
||||
import cn.minbrowser.model.BrowsingHistoy;
|
||||
import cn.minbrowser.protocol.MinURL.MinURLStreamHandlerFactory;
|
||||
import cn.minbrowser.util.BookMarkUtil;
|
||||
import cn.minbrowser.util.BrowsingHistoryUtil;
|
||||
import cn.minbrowser.util.CustomUrlUtil;
|
||||
import cn.minbrowser.util.PopupUtil;
|
||||
import cn.minbrowser.view.minibrowser.MiniTab;
|
||||
@@ -47,6 +49,9 @@ public class NavigationBarController implements Initializable {
|
||||
// 保存所有标签收藏页的信息
|
||||
public Bookmark bookmark;
|
||||
|
||||
// 保存所有浏览记录
|
||||
public BrowsingHistoy browsingHistoy;
|
||||
|
||||
// 收藏标签页
|
||||
@FXML
|
||||
private TextField bookmarkName;
|
||||
@@ -66,6 +71,8 @@ public class NavigationBarController implements Initializable {
|
||||
registerMinUrl();
|
||||
// 加载标签收藏页的所有数据
|
||||
bookmark= BookMarkUtil.readBookMarks();
|
||||
// 加载浏览记录的所有数据
|
||||
browsingHistoy= BrowsingHistoryUtil.readBrowsingHistoryRecords();
|
||||
}
|
||||
|
||||
public MainApp getMainApp(){
|
||||
@@ -199,19 +206,19 @@ public class NavigationBarController implements Initializable {
|
||||
*/
|
||||
public void showBrowsingHistory(){
|
||||
// 遍历tab:如果没浏览记录界面,就打开一个新的界面;有,则将焦点改到该界面
|
||||
// int flag=0; //0表示没界面,>0表示有
|
||||
// for (Tab tab: tabPane.getTabs()) {
|
||||
// MiniTab miniTab= (MiniTab) tab;
|
||||
// if(miniTab.getUrlText().equals(CustomUrlUtil.BrowsingHistory_URL)){
|
||||
// flag++;
|
||||
// tabPane.getSelectionModel().select(tab);
|
||||
// }
|
||||
// }
|
||||
// if(flag==0) {
|
||||
// MiniTab miniTab = new MiniTab(CustomUrlUtil.BrowsingHistory_URL, this);
|
||||
// tabPane.getTabs().add(miniTab);
|
||||
// tabPane.getSelectionModel().select(miniTab);
|
||||
// }
|
||||
int flag=0; //0表示没界面,>0表示有
|
||||
for (Tab tab: tabPane.getTabs()) {
|
||||
MiniTab miniTab= (MiniTab) tab;
|
||||
if(miniTab.getUrlText().equals(CustomUrlUtil.BrowsingHistory_URL)){
|
||||
flag++;
|
||||
tabPane.getSelectionModel().select(tab);
|
||||
}
|
||||
}
|
||||
if(flag==0) {
|
||||
MiniTab miniTab = new MiniTab(CustomUrlUtil.BrowsingHistory_URL, this);
|
||||
tabPane.getTabs().add(miniTab);
|
||||
tabPane.getSelectionModel().select(miniTab);
|
||||
}
|
||||
hideSettingPane();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,11 +3,14 @@ package cn.minbrowser.view;
|
||||
import cn.minbrowser.MiniMinData.DataStructure.MINHTTP_ResponseDataPacket;
|
||||
import cn.minbrowser.MiniMinData.util.MINHTTP_DataPacketFormatUtil;
|
||||
import cn.minbrowser.model.Bookmark;
|
||||
import cn.minbrowser.model.BrowsingHistoy;
|
||||
import cn.minbrowser.util.BookMarkUtil;
|
||||
import cn.minbrowser.util.BrowsingHistoryUtil;
|
||||
import cn.minbrowser.util.FilePermissionUtil;
|
||||
import cn.minbrowser.view.login.LoginHandler;
|
||||
import cn.minbrowser.view.login.RegisterHandler;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.minbrowser.util.FilePermissionUtil.getRootPath;
|
||||
@@ -33,15 +36,24 @@ public class TestMain {
|
||||
// Bookmark.BookmarkModel bookmarkModel=bookmarkModels.get(i);
|
||||
// System.out.println(bookmarkModel.getName()+" "+bookmarkModel.getUrl());
|
||||
// }
|
||||
String testString="MIN-HTTP/1.0 200 OK\n"+
|
||||
"Content-Type application/json\n"+
|
||||
"Content-Length 15\n"+
|
||||
"\n"+
|
||||
"{helloKitty}";
|
||||
// System.out.println(testString);
|
||||
MINHTTP_ResponseDataPacket responseDataPacket=
|
||||
MINHTTP_DataPacketFormatUtil.praseMINHTTPResponsePacket(testString);
|
||||
responseDataPacket.printSelf();
|
||||
System.out.println("=====================");
|
||||
BrowsingHistoy.OneHistoryRecord oneHistoryRecord=new
|
||||
BrowsingHistoy.OneHistoryRecord("beidu.com","北度一下","星期三 下午 四点");
|
||||
BrowsingHistoryUtil.saveOneHistoryRecord(oneHistoryRecord);
|
||||
BrowsingHistoy browsingHistoy= BrowsingHistoryUtil.readBrowsingHistoryRecords();
|
||||
List<BrowsingHistoy.OneHistoryRecord> records=browsingHistoy.getHistoryRecords();
|
||||
for(int i=0;i<records.size();i++){
|
||||
System.out.println("1: "+records.get(i).getUrl()
|
||||
+"2: "+records.get(i).getTitle()+"3: "+records.get(i).getDate());
|
||||
}
|
||||
// String testString="MIN-HTTP/1.0 200 OK\n"+
|
||||
// "Content-Type application/json\n"+
|
||||
// "Content-Length 15\n"+
|
||||
// "\n"+
|
||||
// "{helloKitty}";
|
||||
//// System.out.println(testString);
|
||||
// MINHTTP_ResponseDataPacket responseDataPacket=
|
||||
// MINHTTP_DataPacketFormatUtil.praseMINHTTPResponsePacket(testString);
|
||||
// responseDataPacket.printSelf();
|
||||
// System.out.println("=====================");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package cn.minbrowser.view.minibrowser;
|
||||
|
||||
import cn.minbrowser.model.Bookmark;
|
||||
import cn.minbrowser.model.BrowsingHistoy;
|
||||
import cn.minbrowser.protocol.util.MinUrlUtil;
|
||||
import cn.minbrowser.util.BrowsingHistoryUtil;
|
||||
import cn.minbrowser.util.ConnectTestUtil;
|
||||
import cn.minbrowser.util.FilePermissionUtil;
|
||||
import cn.minbrowser.view.MainPageHTMLController;
|
||||
@@ -35,6 +37,7 @@ import java.io.UnsupportedEncodingException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLDecoder;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -212,6 +215,8 @@ public class MiniTab extends Tab {
|
||||
showRegisterPage();
|
||||
}else if(url.equals(Bookmarks_URL) || url.equals(Bookmarks_SHOW_URL)){
|
||||
showBookmarksPage();
|
||||
}else if(url.equals(BrowsingHistory_URL)){
|
||||
showBrowsingHistoryPage();
|
||||
}else {
|
||||
load(url);
|
||||
}
|
||||
@@ -236,6 +241,9 @@ public class MiniTab extends Tab {
|
||||
if (newValue != null && !newValue.trim().isEmpty()) {
|
||||
setText(newValue);
|
||||
setTooltip(new Tooltip(newValue));
|
||||
// 将该浏览记录保存起来
|
||||
System.out.println("getUrlText(): "+webview.getEngine().getLocation());
|
||||
addToHistory(newValue,webview.getEngine().getLocation());
|
||||
} else {
|
||||
setText(DEFAULT_TEXT);
|
||||
setTooltip(null);
|
||||
@@ -268,6 +276,23 @@ public class MiniTab extends Tab {
|
||||
});
|
||||
}
|
||||
|
||||
private void addToHistory(String title,String url){
|
||||
// 如果是打开的本地网页,则不进行记录
|
||||
if(url.startsWith("file:")||url.startsWith("minbrowser:")){
|
||||
return ;
|
||||
}
|
||||
// 获取时间
|
||||
long time = System.currentTimeMillis();
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
|
||||
String day = dateFormat.format(time);
|
||||
// 保存到本地
|
||||
BrowsingHistoy.OneHistoryRecord oneHistoryRecord=
|
||||
new BrowsingHistoy.OneHistoryRecord(url,title,day);
|
||||
BrowsingHistoryUtil.saveOneHistoryRecord(oneHistoryRecord);
|
||||
// 更新数据结构
|
||||
navigationBarController.browsingHistoy.addOneHistoryRecord(oneHistoryRecord);
|
||||
}
|
||||
|
||||
private Button getButton(Style style) {
|
||||
Button btn = new Button("");
|
||||
btn.setPrefWidth(25D);
|
||||
@@ -354,6 +379,9 @@ public class MiniTab extends Tab {
|
||||
input.setText(Bookmarks_SHOW_URL);
|
||||
setChangingBookmarkInfoListener();
|
||||
showBookmarkInfoByListenEngineState();
|
||||
}else if(url.contains("resources/html/BrowsingHistory/history.html")){
|
||||
input.setText(BrowsingHistory_URL);
|
||||
showHistoryInfoByListenEngineState();
|
||||
}else {
|
||||
try {
|
||||
input.setText(URLDecoder.decode(url, "UTF-8"));
|
||||
@@ -386,7 +414,7 @@ public class MiniTab extends Tab {
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行bookmarks.html中的js代码,显示配置信息
|
||||
* 执行bookmarks.html中的js代码,显示书签信息
|
||||
*/
|
||||
private void showBookmarkInfoByListenEngineState() {
|
||||
List<Bookmark.BookmarkModel> bookmarkModels=navigationBarController.bookmark.getBookmarks();
|
||||
@@ -409,6 +437,23 @@ public class MiniTab extends Tab {
|
||||
System.out.println("finished.");
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行history.html中的js代码,显示浏览记录信息
|
||||
*/
|
||||
private void showHistoryInfoByListenEngineState() {
|
||||
List<BrowsingHistoy.OneHistoryRecord> records=navigationBarController.browsingHistoy.getHistoryRecords();
|
||||
for(int i=0;i<records.size();i++){
|
||||
System.out.println("1: "+records.get(i).getUrl()
|
||||
+"2: "+records.get(i).getTitle()+"3: "+records.get(i).getDate());
|
||||
webview.getEngine().executeScript(
|
||||
"setCacheName(\""+records.get(i).getTitle()+"\");");
|
||||
webview.getEngine().executeScript(
|
||||
"setCacheTime(\""+records.get(i).getDate()+"\");");
|
||||
webview.getEngine().executeScript(
|
||||
"addOneHistory(\""+records.get(i).getUrl()+"\");");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将LoginHTMLController作为对象传入HTML中的JS,从而被JS调用
|
||||
*/
|
||||
@@ -496,6 +541,15 @@ public class MiniTab extends Tab {
|
||||
}
|
||||
}
|
||||
|
||||
// 显示浏览记录页
|
||||
public void showBrowsingHistoryPage(){
|
||||
try {
|
||||
loadLocalPage("/resources/html" + "/BrowsingHistory/history.html");
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载本地页面
|
||||
* @param path 项目根目录下的路径
|
||||
|
||||
Reference in New Issue
Block a user