1

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);
4

1 に答える 1

1

引用符が文字列を終了させて​​いる可能性があり、奇妙な動作を引き起こしています。文字列内に留めておきたい引用符を使用する場合は、引用符の前に「\」を使用して、文字列が終わらないようにします。あなたの場合、次のようなことをしたいでしょう:

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

于 2013-09-04T15:41:29.373 に答える