2013-10-14 76 views
0

我是来自IOS和Android的新手,并试图复制这些应用程序中的功能,我使用的用户名和密码保存在首选项(isolatedstorage)中并将其注入https网页的javascript。从previous question I asked之前,我现在明白了,我不能使用System.Windows.Forms的,因为这是对W8Desktop,我瞄准的Windows Phone 8javascript用户名密码https登录问题的Windows Phone 8

Android中我做了以下内容:

view.loadUrl(“javascript:document.getElementById(‘Login1_UserName’).value=’”+userName+”‘;javascript:document.getElementById(‘Login1_Password’).value = ‘”+password+”‘;”); 
view.loadUrl(“javascript:document.getElementById(‘Login1_LoginButton’).click();”); 

和我我试图在Visual Studio 2012中做,但它不工作。这是我的代码:

Browser.Navigate(new Uri(mainUrl, UriKind.Absolute)); 

Browser.InvokeScript(“eval”, new string[] { “document.getElementById(‘Login1_UserName’).value = ‘”+username+”‘ , document.getElementById(‘Login1_Password’).value = ‘”+password+”‘;”}); 
Browser.InvokeScript(“eval”, new string[] { “document.getElementById(‘Login1_LoginButton’).click();”}); 

但它只是不会工作。所以我的问题有两个:

  1. 如果我想创建一个小的脚本,我认为被称为EVAL,做我添加了一个资源文件到我的项目或将其添加为代码在我的MainPage.xaml中块。 CS?如果是这样如何?
  2. 如果我这样做,是否有我的语法问题?

非常感谢您可能提供帮助的任何指针。

+0

嗨,伙计们,仍然需要解决这个问题,有人会通过这个问题,并有一些想法,我做错了什么。 – timv

回答

0

我现在有一个解决方案,但仍需要知道如何实现它。

以下是将JavaScript注入表单的正确代码。

browser.InvokeScript("eval", "document.getElementById('Login1_UserName').value = '" + username + "';"); 
browser.InvokeScript("eval", ("document.getElementById('Login1_Password').value = '" + password + "';")); 
browser.InvokeScript("eval", string.Format("document.getElementById('Login1_LoginButton').click();")); 

我遇到的问题是我不允许页面在运行脚本之前完成加载。我已经尝试了一些东西,但没有评论,所以我会继续挖掘和编辑,一旦我解决了。

希望这可以帮助别人。

只要记住,你不能使用browser.document,因为你在某些解决方案中看到它不会在windows phone上工作。由于我是一个新手,很高兴能够纠正,但是这种线索花费我太多时间。您需要使用Invokescript for windows手机代码。

+0

好的,我已经检查了每个可能的方法为webbrowser和每次我尝试和加载页面,然后等待它加载之前注入JavaScript,我收到一个错误。因此,在与服务器chap交谈之后,我们正在修改它并使用用户名和密码进行POST。但是,如果你只需要在已经加载的页面上注入JavaScript,那么这肯定会起作用。 – timv