url和WebBrowser中的双引号

时间:2013-09-04 15:03:16

标签: c# windows-phone-8 uri

我在Windows Phone 8中使用WebBrowser控件遇到了一个不错的问题。我已经注册了一个自定义uriparser,允许通过window.location.href = "myprotocoll://processCommand(17, 'jscriptcallback', '{\"data0\":\"hello\"}')"发送命令但是它工作得很好,除非我开始添加双引号,就像在我的例。 ({"data0":"hello"})如果我想发送json字符串,那么必要的是什么。如果你尝试通过window.location.href导航到那个url,那么我的应用程序中没有任何错误输出没有异常没有任何事情会发生。我认为这是一个非常奇怪的行为。

我的UriParser:

public class MyUriParser : UriParser
{
    public MyUriParser()
    {

    }

    protected override string GetComponents(Uri uri, UriComponents components, UriFormat format)
    {
        return "";
    }
    protected override bool IsWellFormedOriginalString(Uri uri)
    {
        return true;
    }
    protected override void InitializeAndValidate(Uri uri, out UriFormatException parsingError)
    {
        parsingError = null;
    }
    protected override bool IsBaseOf(Uri baseUri, Uri relativeUri)
    {
        return false;
    }
    protected override string Resolve(Uri baseUri, Uri relativeUri, out UriFormatException parsingError)
    {
        parsingError = null;
        return "";
    }
}

通过以下方式注册:

if (!UriParser.IsKnownScheme(SCHEMENAME_0))
    UriParser.Register(new MyUriParser(), SCHEMENAME_0, 80);

1 个答案:

答案 0 :(得分:1)

您的引号可能会终止字符串,从而导致奇怪的行为。使用要保留在字符串中的引号时,请在引号前使用“\”,这样它们就不会结束字符串。在您的情况下,您需要执行以下操作:

window.location.href = "myprotocoll://processCommand(17, 'jscriptcallback', '{\"data0\":\"hello\"}')"