windowsphone中WebBrowser中的页面按级回退功能

来源:互联网 发布:java聊天室软件开发 编辑:程序博客网 时间:2024/05/02 00:13

在windowsphone应用开发中,我们会常用到WebBrowser这个控件。它可以浏览网页,并且可以在当前打开的网页中单击超级链接,继续打开新的网页。但是在操作中会存在这样一个问题,当按"Back"键希望返回前一个(上一级)网页时,程序会直接跳出当前的网页浏览器,直接返回到上一页面(客户端程序页面)。也就是说"Back"键会使程序返回程序的上一个PhoneApplicationPage,而不是WebBrowser中已打开过的前一个网页。

1.网页回退

我们普遍的做法会首先禁用掉Back键的功能,然后通过网页js的代码来实现网页的回退功能。在js有两种方法可以实现网页回退:

(1)Browser.InvokeScript( "eval" , "history.go(-1)" );

(2)Browser.InvokeScript( "eval" , "history.back()" );

2.退出网页/浏览器
上面的方法是不能使网页退出,而返回到上一级的程序页面的。那么在网页回到最初始页面时,是要启用Back的功能。为了在回退网页时禁用Back键,而在退出网页时启用Back,可以使用一个计数器来模拟打开的网页栈---
计数器初始化为1。打开新的网页时,计数器加一;回退网页时,计数器减一。当计数器记录为1时,此时按Back键可以实现网页的退出。

下面是简要代码:

using System;using System.Windows.Navigation;using Microsoft.Phone.Controls;namespace CustomControls{    public partial class ClockPage : PhoneApplicationPage    {        #region Data Members        // 用于点击打开网页(非back键操作引起的)次数的统计        private int m_PageStackCount = 0;        // 标志是否为按Back键引起的网页跳转        private bool m_BackKey = false;        #endregion        #region Constructor        public ClockPage()        {            InitializeComponent();        }        #endregion        #region Protected Methods        protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)        {            // 返回到上一级页面,此方法无法使网页退出,也就是最后只能退回到首页            Browser.InvokeScript("eval", "history.back()");            m_BackKey = true;            if (m_PageStackCount > 1)            {                e.Cancel = true;                m_PageStackCount -= 1;            }            else            {                // 退出网页                e.Cancel = false;            }        }        private void Browser_Navigated(object sender, NavigationEventArgs e)        {            if (m_BackKey == false)            {                m_PageStackCount += 1;                           }            else            {                m_BackKey = false;            }        }        #endregion    }}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 Ⅵvo手机声音小怎么办 小米手机预约错了怎么办 小米note二手没解锁怎么办 艾灸后脸色越黑怎么办 淘宝软件类目不能上架宝贝怎么办 ae中没有mpg格式怎么办 淘宝小二处理不公怎么办 遇到卖保险的人怎么办 租房合同没理家电清单怎么办 普雪油烟机坏了怎么办 我累了 真的累了怎么办 u盘15g变成4g了怎么办 属兔的买了东户怎么办 玩时时彩输了2万怎么办 胸变的又软又小怎么办 u盘16g变成4g了怎么办 1岁宝宝吃了就吐怎么办 脚崴了肿了很痛怎么办 九格拼图5在9那怎么办 4s锁屏密码忘了怎么办 6p触屏偶尔乱跳怎么办 新办劳务公司的劳务资质怎么办 汽车没电了打不着火怎么办 吃凉的甜的牙疼怎么办 学车对点对不上怎么办 发现老公有外遇最明智的怎么办 想开个童装店但是没经验怎么办 母乳不够吃宝宝又不喝奶粉怎么办 掉头发很厉害怎么办有什么偏方 红米2a刷死机了怎么办 公司退市我们买的股票怎么办 黑魂3把npc杀了怎么办 摔倒了膝盖摔肿了又痛怎么办 厕所堵了怎么办疏通马桶有妙招 月经不来怎么办如何让它快点来 苹果手机进水了开不了机怎么办 苹果5s进水了怎么办修要多少钱 吃了过期3年的药怎么办 离婚后孩子的抚养费不给怎么办 小车钥匙丢了怎么办配要多少钱 一键启动的车钥匙丢了怎么办