Вызов .NET объектов из Javascript в элементе управления WP7 WebBrowser - PullRequest
4 голосов
/ 01 сентября 2011

Можно ли получить доступ к локальным объектам Windows Phone Silverlight C # / .NET из Javascript, загруженного в элемент управления WebBrowser в приложении WP7?

Ответы [ 2 ]

12 голосов
/ 01 сентября 2011

Не напрямую, но javascript в WebBrowser может вызывать приложение асинхронно с помощью window.external.notify.Приложение может обнаружить эти уведомления с помощью события WebBrowser.ScriptNotify и обратного вызова javascript с использованием WebBrowser.InvokeScript.

Вот (непроверенный) пример.

HTML:

<html>
<head>
<script type="text/javascript">
    function beginCalculate()
    {
        var inputValue = parseInt(document.getElementById('inputText').value);

        window.external.notify(inputValue);
    }

    function endCalculate(result)
    {
        document.getElementById('result').innerHTML = result;
    }
</script>
</head>
<body>
    <h2>Add 5 to a number using notify</h2>

    <div>
        <input type="text" id="inputText" />
        <span> + 5 =</span>
        <span id="result">??</span>
    </div>

    <input type="button" onclick="beginCalculate()" />
</body>
</html>

Приложение:

/// <WebBrowser x:Name="Browser" ScriptNotify="Browser_ScriptNotify" />

private void Browser_ScriptNotify(objec sender, NotifyEventArgs e)
{
    int value = Int32.Parse(e.Value);

    string result = (value + 5).ToString();

    // endCalculate can return a value
    object scriptResult = Browser.InvokeScript("endCalculate", result);
}
0 голосов
/ 01 сентября 2011

если вы используете веб-браузер WP7 для подключения к удаленному веб-сайту (и это должно быть так, и WP7 не размещает веб-сервер), вы можете протестировать веб-приложение также с обычного рабочего стола.

Обычно, если вам необходимо установить связь между клиентской стороной (JavaScript) и серверной стороной (в вашем случае C #), в зависимости от конкретного контекста и потребностей, вы можете использовать несколько различных методов, например Page Methods (google for ASP.Методы страницы NET).

я понимаю, что браузер WP7 находится где-то посередине между IE8 и IE9 с немного ограниченным движком JavaScript по сравнению с обоими, но должно работать что-то такое базовое, как Page Method, я бы сначала проверил его иззатем нормальный ПК с телефона и проверьте, работает ли, а если нет, то что ломается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...