Как установить javascript src в html-файл для WebInvoke (WP7.5, Silverlight) - PullRequest
0 голосов
/ 02 февраля 2012

Я использую элемент управления WebBrowser в Windows Phone для вызова вызова JavaScript.Прямо сейчас код работает нормально, когда я ссылаюсь на скрипт онлайн.Однако, когда я ссылаюсь на него локально, он ломается.

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

<script type="text/javascript" src="scripts/myJavascript.js"></script>

он прекрасно работает, когда я делаю

<script type="text/javascript" src="http://mysite.com/myJavascript.js"></script>'

И идея, как я могу ссылаться на файл локально?У меня установлено «Содержимое и всегда копировать».

В конце концов, настоящий файл - это http://closure -library.googlecode.com / svn / trunk / closure / goog / base.js Мне нужно, чтобы он работал в автономном режиме, чтобы моим пользователям не требовалось подключение к Интернету для использования моего приложения.

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Как говорит Колин, для относительных путей работы в локально загруженных файлах HTML все файлы должны быть сначала скопированы в изолированное хранилище и загружены оттуда.

1 голос
/ 02 февраля 2012

Я не могу сразу увидеть проблему с вашим подходом, однако вы не показали код, который вы используете для загрузки файлов в локальное хранилище.Я бы порекомендовал взглянуть на исходный код PhoneGap , который загружает несколько файлов в изолированное хранилище для рендеринга в WebBrowser, чтобы увидеть, как он это делает.Вот соответствующая часть кода PhoneGap:

fileResourceStreamInfo = Application.GetResourceStream(new Uri(file.path, UriKind.Relative));

if (fileResourceStreamInfo != null)
{
    using (BinaryReader br = new BinaryReader(fileResourceStreamInfo.Stream))
    {
        byte[] data = br.ReadBytes((int)fileResourceStreamInfo.Stream.Length);

        string strBaseDir = AppRoot + file.path.Substring(0, file.path.LastIndexOf(System.IO.Path.DirectorySeparatorChar));

        if(!appStorage.DirectoryExists(strBaseDir))
        {
            //Debug.WriteLine("Creating Directory :: " + strBaseDir);
            appStorage.CreateDirectory(strBaseDir);
        }

        // This will truncate/overwrite an existing file, or 
        using (IsolatedStorageFileStream outFile = appStorage.OpenFile(AppRoot + file.path, FileMode.Create))
        {
            Debug.WriteLine("Writing data for " + AppRoot + file.path + " and length = " + data.Length);
            using (var writer = new BinaryWriter(outFile))
            {
                writer.Write(data);
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...