如何将参数传递给WP7 / WP8中的本地html页面?

时间:2012-11-27 03:49:14

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

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

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

2 个答案:

答案 0 :(得分:2)

作为一种可行的脏解决方法,您可以按照以下方式实现:

一个。导航到没有任何参数的页面

B中。将以下逻辑的参数附加到以下事件之一

WebBrowser.Navigated Event - 成功导航后

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

℃。使用webBrowser.InvokeScript (C#)

将参数注入html页面
webBrowser.InvokeScript("eval", new string[] {"processArgs('someArgs') or any generated/custom script"}); 

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

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

答案 1 :(得分:1)

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

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加载)