none
关于页面导航的问题 RRS feed

  • 问题

  • 想利用后台(C#代码)实现浏览器导航或者重定向(直接导航到本地url),而不涉及前台xaml,是否可以实现。
    2012年3月26日 2:03

答案

  • 你好,

    嗯你说得对,WebBrowserTask只接受绝对路径,而且是http或者https的。因为存在独立存储空间中的网页没有在任何server部署所以没有办法得到http 后者https开头的绝对路径。也就是说WebBrowserTask不可以打开存储在程序内部的静态网页。

    有一个解决方法,就是添加一个WebBrowser control然后在WebBrowser中显示独立存储空间中的网页。

    Uri uri = new Uri("/app/bbb/ccc/login.html", UriKind.Relative);

    WebBrowser1.Source= uri;

    • 已标记为答案 Shi Ding 2012年4月4日 2:49
    2012年3月28日 9:53

全部回复

  • 你好,

    请问你说的是指页面之间的导航么?可以在C#代码中,使用如下的NavigationService实现:

    this.NavigationService.Navigate(new Uri( "/DetailsPage.xaml", UriKind.Relative));


    Keep Fighting

    2012年3月26日 5:09
  • 具体的说,我是想在本地应用里想访问一本地页面。该怎么办?
    2012年3月26日 6:10
  • 你好,

    你所指的本地页面是本程序中的页面么?如果是这样的话,建议采用dearsj001所提供的方法。

    如果这个没有解决你的问题,请你再详细解释下本地页面具体指什么?

    2012年3月27日 2:25
  • 因为我开发的程序前台由html/css/js构建,而后台由C#构建。而在这个平台之上还有安装在手机本地存储html+css+js的应用。

    我的目的就是想在平台上访问手机本地存储应用的页面。

    2012年3月27日 2:34
  • 现在的问题是访问不了本地的页面文件:

                    using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
                    {
                        Uri uri = new Uri("/app/bbb/ccc/login.html", UriKind.Absolute);
                        WebBrowserTask webBrowserTask = new WebBrowserTask();
                        webBrowserTask.Uri = uri;
                        webBrowserTask.Show();
                        return true;
                    }
                }
                catch(Exception e)
                {
                    return false;
                }

    直接就进异常里了。

    [System.ArgumentOutOfRangeException] = {"Specified argument was out of the range of valid values.\r\nParameter name: Uri has to be absolute and only http/https is allowed."}

    原因是Uri仅支持使用 HTTP 或 HTTPS 协议的绝对 URI。

    请问其它方法支持本地页面访问吗?

    2012年3月27日 8:42
  • 看了楼主的需求,建议使用PhoneGap更合适:http://phonegap.com/start#wp
    2012年3月28日 0:48
  • 看了楼主的需求,建议使用PhoneGap更合适:http://phonegap.com/start#wp

    现在使用的正是phonegap+plugin(wp7)的架构进行开发。

    想在plugin里实现访问本地页面,但没有找到合适的方法。

    2012年3月28日 1:00
  • 从错误信息看是uri那里抛出的异常,请将UriKind.Absolute改为UriKind.Relative 因为你用的是相对路径。

    2012年3月28日 1:27
  • 从错误信息看是uri那里抛出的异常,请将UriKind.Absolute改为UriKind.Relative 因为你用的是相对路径。

    1.从MSDN上的信息来看,webBrowserTask类的Uri属性仅支持绝对地址(“该属性仅支持使用 HTTP 或 HTTPS 协议的绝对 URI。”

    http://msdn.microsoft.com/zh-cn/library/microsoft.phone.tasks.webbrowsertask.uri(v=vs.92).aspx

    2."/app/bbb/ccc/login.html"已经是绝对路径了,是该应用独立存储空间存放文件的绝对路径。


    2012年3月28日 1:49
  • 你好,

    嗯你说得对,WebBrowserTask只接受绝对路径,而且是http或者https的。因为存在独立存储空间中的网页没有在任何server部署所以没有办法得到http 后者https开头的绝对路径。也就是说WebBrowserTask不可以打开存储在程序内部的静态网页。

    有一个解决方法,就是添加一个WebBrowser control然后在WebBrowser中显示独立存储空间中的网页。

    Uri uri = new Uri("/app/bbb/ccc/login.html", UriKind.Relative);

    WebBrowser1.Source= uri;

    • 已标记为答案 Shi Ding 2012年4月4日 2:49
    2012年3月28日 9:53