Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 8 WebBrowser控件NavigateToString()无法为嵌入式网页触发ajax调用_Windows Phone 8_Webbrowser Control - Fatal编程技术网

Windows phone 8 WebBrowser控件NavigateToString()无法为嵌入式网页触发ajax调用

Windows phone 8 WebBrowser控件NavigateToString()无法为嵌入式网页触发ajax调用,windows-phone-8,webbrowser-control,Windows Phone 8,Webbrowser Control,我的要求是在windows phone应用程序中显示动态网页 代码片段: private string MYACCOUNT_URL = "http://www.abc.com" protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { try { //Initialization

我的要求是在windows phone应用程序中显示动态网页

代码片段:

    private string MYACCOUNT_URL = "http://www.abc.com"

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        try
        {
            //Initialization
            HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(MYACCOUNT_URL);

            WebReq.CookieContainer = cookies;

            //Our method is post, otherwise the buffer (postvars) would be useless
            WebReq.Method = "POST";
            //We use form contentType, for the postvars.
            WebReq.ContentType = "application/x-www-form-urlencoded";

            //WebHeaderCollection headers = new WebHeaderCollection();
            //headers[HttpRequestHeader.UserAgent] = useragent;
            //WebReq.Headers = headers;

            //WebReq.Headers["User-Agent"] = useragent;
            //var userAgent = WebReq.GetType().GetProperty("UserAgent");
            //if (null != userAgent)
            //{
            //    userAgent.SetValue(WebReq, useragent, null);
            //}
            //WebReq.UserAgent = userAgent.ToString();

            Cookie emailCookie = new Cookie("email", Constants.LoginUserName);
            WebReq.CookieContainer.Add(new Uri(MYACCOUNT_URL), emailCookie);

            Cookie userIdCookie = new Cookie("id", Constants.UserId);
            WebReq.CookieContainer.Add(new Uri(MYACCOUNT_URL), userIdCookie);

            Cookie tokenCookie = new Cookie("token", Constants.AccessToken);
            WebReq.CookieContainer.Add(new Uri(MYACCOUNT_URL), tokenCookie);

            WebReq.BeginGetResponse(new AsyncCallback(MyAccountResponseCallback), WebReq);
        }
        catch (WebException ex)
        { }
    }  

    private void MyAccountResponseCallback(IAsyncResult asynchronousResult)
    {
        try
        {
            HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
            Stream streamResponse = response.GetResponseStream();
            StreamReader streamRead = new StreamReader(streamResponse);                      

            string responseString = streamRead.ReadToEnd();
            responseString = Regex.Replace(responseString, "<!DOCTYPE html>", "", RegexOptions.IgnoreCase).Trim();
            responseString = Regex.Replace(responseString, "<html lang=\"en\">", "<html>", RegexOptions.IgnoreCase).Trim();
            responseString = Regex.Replace(responseString, "<meta charset=\"utf-8\"", "<meta", RegexOptions.IgnoreCase).Trim();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                Dispatcher.BeginInvoke(() =>
                {
                    web_browser.NavigateToString(responseString);
                });                                   
            }

            streamResponse.Close();
            streamRead.Close();

            // Release the HttpWebResponse
            response.Close();

        }
        catch (WebException ex)
        {
         }
    }
私有字符串MYACCOUNT\u URL=”http://www.abc.com"
受保护的覆盖无效OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
尝试
{
//初始化
HttpWebRequest WebReq=(HttpWebRequest)WebRequest.Create(MYACCOUNT\uurl);
WebReq.CookieContainer=cookies;
//我们的方法是post,否则缓冲区(postvars)将是无用的
WebReq.Method=“POST”;
//对于PostVar,我们使用表单contentType。
WebReq.ContentType=“application/x-www-form-urlencoded”;
//WebHeaderCollection headers=新建WebHeaderCollection();
//headers[HttpRequestHeader.UserAgent]=UserAgent;
//WebReq.Headers=标题;
//WebReq.Headers[“用户代理”]=用户代理;
//var userAgent=WebReq.GetType().GetProperty(“userAgent”);
//if(null!=userAgent)
//{
//SetValue(WebReq,userAgent,null);
//}
//WebReq.UserAgent=UserAgent.ToString();
Cookie-emailCookie=新Cookie(“电子邮件”,Constants.LoginUserName);
WebReq.CookieContainer.Add(新的Uri(MYACCOUNT\uURL)、emailCookie);
Cookie userIdCookie=新Cookie(“id”,Constants.UserId);
WebReq.CookieContainer.Add(新的Uri(MYACCOUNT\uURL),userIdCookie);
Cookie tokenCookie=新Cookie(“token”,Constants.AccessToken);
WebReq.CookieContainer.Add(新的Uri(MYACCOUNT\uURL),tokenCookie);
WebReq.BeginGetResponse(新的异步回调(MyAccountResponseCallback),WebReq);
}
捕获(WebException ex)
{ }
}  
私有void MyAccountResponseCallback(IAsyncResult asynchronousResult)
{
尝试
{
HttpWebRequest请求=(HttpWebRequest)asynchronousResult.AsynchState;
HttpWebResponse=(HttpWebResponse)request.EndGetResponse(asynchronousResult);
streamResponse=response.GetResponseStream();
StreamReader streamRead=新的StreamReader(streamResponse);
字符串responseString=streamRead.ReadToEnd();
responseString=Regex.Replace(responseString,“,”,RegexOptions.IgnoreCase.Trim();
responseString=Regex.Replace(responseString,“,”,RegexOptions.IgnoreCase.Trim();

responseString=Regex.Replace(responseString,感谢您的回复。不幸的是,“IsScriptEnabled”在这里没有帮助。但我得到了一个解决方案。我使用“Navigate”方法而不是“NavigateToString”,它正在工作。它正在加载网页,并且允许我执行网页上的所有事件


谢谢

另一个可能的选择是使用
导航(“关于:空白”)
导航到空白页面,处理
WebBrowser.LoadCompleted
事件,然后通过
WebBrowser.Document
注入所需的HTML和脚本。