【问题标题】:How to display htmlcontent string in web browser control in windows phone 8?如何在 Windows Phone 8 的 Web 浏览器控件中显示 htmlcontent 字符串?
【发布时间】:2015-01-23 16:56:03
【问题描述】:

我有网络浏览器控件,我在其中使用 javascript 和 NavigateToString() 方法显示 Htmlcontent。除非在我获取 Htmlcontent 的服务器上添加了表标签,否则它工作正常。到目前为止,我已经尝试过以下代码

string notifyJS = @"<script type='text/javascript' language='javascript'>
                            window.onload = function() {
                                var links = document.getElementsByTagName('a');
                                for(var i=0;i<links.length;i++) {
                                    links[i].onclick = function() {
                                        window.external.Notify(this.href);
                                    }
                                }
                            }
                        </script>";


        var htmlContent = string.Format("<html><head>{2}</head>" +
                                                 "<body style=\"margin:25px 25px 75px;padding:0px;background-color:{1};\" " +
                                                 "{0}</body></html>",
                                                 _selectedTab.HTML_CONTENT,
                                                 _selectedTab.TAB_BG_COLOR,
                                                 notifyJS);
        //var htmlContent = _selectedTab.HTML_CONTENT;

        HtmlContentView.NavigateToString(htmlContent);
        HtmlContentView.ScriptNotify += HtmlContentView_ScriptNotify;
        HtmlContentView.Navigating += HtmlContentView_Navigating;
        HtmlContentView.LoadCompleted += HtmlContentView_LoadCompleted;
    }

    void HtmlContentView_LoadCompleted(object sender, NavigationEventArgs e)
    {
        HtmlContentView.InvokeScript("execScript", new string[] { "document.onselectstart=function(){return false;};document.ondragstart=function(){return false;}" });

    }

    void HtmlContentView_Navigating(object sender, NavigatingEventArgs e)
    {
        e.Cancel = true;
    }

    void HtmlContentView_ScriptNotify(object sender, NotifyEventArgs e)
    {
        if (!string.IsNullOrEmpty(e.Value))
        {
            string href = e.Value.ToLower();
            if (href.StartsWith("mailto:"))
            {
                EmailComposeTask email = new EmailComposeTask();
                email.To = href.Replace("mailto:", string.Empty);
                email.Show();
            }
            else if (href.StartsWith("tel:"))
            {
                PhoneCallTask call = new PhoneCallTask();
                call.PhoneNumber = href.Replace("tel:", string.Empty);
                call.Show();
            }
            else
            {
                WebBrowserTask browserTask = new WebBrowserTask();
                browserTask.Uri = new Uri(e.Value);
                browserTask.Show();

            }
        }
    }

请任何人都可以建议为什么无法正确识别表格标签?我在 Android 中检查了相同的内容,它工作得非常好。

请任何人提出解决方案。

【问题讨论】:

    标签: c# windows-phone-8


    【解决方案1】:

    WP8 中的 Web 浏览器控件的 NavigateToString() 函数无法正常工作是一个已知问题。尝试改用 CSS 和 DIV,因为目前没有其他解决方案。

    我希望这能回答你的问题。

    【讨论】:

    • 你能推荐一些我可以添加到我的代码中以满足我的要求的代码吗?
    • 我不完全了解你的上下文,所以我认为只是建议一些代码并不能解决你的问题。我认为如果您将 HTML 表格替换为另一个看起来或多或少与表格相同的 HTML 内容,您的问题将得到成功解决。如果您认为已回答,请尝试将此问题标记为已回答,如果您想直接回答下一个问题,请提出另一个问题以寻求有关该特定内容的帮助。
    【解决方案2】:

    最后,我从这个链接得到了解决方案 Solution

    我根据他们的建议添加了元标记,效果很好。

    var htmlContent = string.Format("<html><head>{2}<meta name='viewport' content='inital-scale=1.0,maximum-scale=1.0, user-scalable=no' /></head>" +      
                                                     "<body style=\"background-color:{1};\"" +
                                                     "{0}</body></html>",
                                                     _selectedTab.HTML_CONTENT,
                                                     _selectedTab.TAB_BG_COLOR,
                                                     notifyJS);
            //var htmlContent = _selectedTab.HTML_CONTENT;
    
            HtmlContentView.NavigateToString(htmlContent);
    

    希望对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多