【问题标题】:How to pass a parameter to a local html page in WP7 / WP8?如何将参数传递给 WP7 / WP8 中的本地 html 页面?
【发布时间】:2012-11-27 03:49:13
【问题描述】:

有谁知道如何将 url 参数传递给 Web 浏览器控件中的本地页面?

当您单独导航到页面"/Html/MyPage.html" 时,一切都很好,但是一旦您添加参数"/Html/MyPage.html?Message=Hello",我就会收到一个错误页面,指出我们无法导航到该页面。
有什么想法吗?

【问题讨论】:

标签: c# windows-phone-7 url webbrowser-control windows-phone-8


【解决方案1】:

作为一种有效的解决方法,您可以按如下方式实现:

A.导航到没有任何参数的页面

B.将下面的参数传递逻辑附加到以下事件之一

WebBrowser.Navigated Event - 成功导航时

WebBrowser.LoadCompleted Event - 在 WebBrowser 控件加载内容之后发生。

C.使用webBrowser.InvokeScript (C#)向html页面注入参数

webBrowser.InvokeScript("eval", new string[] {"processArgs('someArgs') or any generated/custom script"}); 

webBrowser.InvokeScript("processArgs", new string[] {"someArgs"});

其中 processArgs 是在您的 html 文件中的某处定义的。

【讨论】:

    【解决方案2】:

    作为另一种解决方法,您可以将参数作为位置哈希参数传递(如果未使用)

    browser.Navigate(new Uri("www/index.html#p=123&p2=567", UriKind.Relative));
    

    然后在 index.html 中

    var args = window.location.hash;
    

    (args = '#p=123&p2=567')

    在 WP7 上测试(index.html 存储在隔离存储中)+ WP8(index.html 直接从 XAP 加载)

    【讨论】:

    • 这实际上是我最终使用的。完美运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2018-12-04
    • 2012-01-01
    • 2013-04-24
    • 1970-01-01
    • 2012-09-16
    相关资源
    最近更新 更多