混合导航
来源:互联网 发布:淘宝店铺 过户 公示 编辑:程序博客网 时间:2024/04/29 18:32
今天完成了webbrowser html和page之间的导航。
1、创建history类,里面包含2个stack存储前进和后退地址。 html的地址为uri类型,page的地址就是page实例(这样保证只有唯一page的实例存在)。
2、在webbrowser loadcompleted或者frame导航时,把地址加到history里。
3、在实现前进后退功能时,从page导航到html或者html导航到page,要注意frame的操作。
类的实现如下:
class History
{
public History(Frame frame, WebBrowser webbrowser)
{
backStack = new Stack<object>();
forwardStack = new Stack<object>();
m_frame = frame;
m_nowType = null;
m_webbrowser = webbrowser;
}
public void operatorNavigate( object previousType)
{
if (m_nowType is Uri)
{
if (previousType is Uri)
{
m_webbrowser.Navigate((Uri)m_nowType);
}
else
{
m_frame.Navigate(m_webbrowser);
m_webbrowser.Navigate((Uri)m_nowType);
}
}
else
{
m_frame.Navigate(m_nowType);
}
}
public bool GoBack()
{
if (CanGoback())
{
forwardStack.Push(m_nowType);
m_nowType = backStack.Pop();
operatorNavigate(forwardStack.Peek());
return true;
}
return false;
}
public bool GoForward()
{
if (CanGoForward())
{
backStack.Push(m_nowType);
m_nowType = forwardStack.Pop();
operatorNavigate(backStack.Peek());
return true;
}
return false;
}
public (object type)
{
if (m_nowType != null)
backStack.Push(m_nowType);
m_nowType = type;
forwardStack.Clear();
}
public bool CanGoback()
{
if (backStack.Count > 0)
return true;
return false;
}
public bool CanGoForward()
{
if (forwardStack.Count > 0)
return true;
return false;
}
private Stack<object> backStack { get; set; }
private Stack<object> forwardStack { get; set; }
public object m_nowType { get; set; }
private Frame m_frame;
private WebBrowser m_webbrowser;
}
- 混合导航
- [iOS 导航与TabBar混合] UINavigationCon+UITabBarViewController 混合使用
- 解决导航跳转和模态跳转混合问题
- 混合移动应用中地图导航功能开发与应用
- 混合
- 混合
- 混合
- 混合
- 混合
- 混合
- 使用Vue构建Ionic混合APP系列教程(二):导航
- 导航
- 导航
- 导航
- 导航
- 导航
- 导航
- 导航
- android设置Activity背景色为透明的2种方法
- 动态加载image
- 一点小思考
- 两个obj文件怎么连接生成一个exe程序
- 星期日:发布移动应用的最佳时间
- 混合导航
- Devexpress VCL v48 for Borland c++ Builder 2006记录
- 数据量10亿级别的数据库表,多行存储成一行、一列扩展成多列之数据优化及迁移方案(三)
- U-Boot个人实践中的总结(不断完善中...)
- ListBoxItem style
- mysql优化总结
- (转)Wap开发FAQ大全
- 如何不重启电脑使得修改之后的环境变量有效
- Java Annotation入门