Windows Mobile 6.5 Профессиональная

У меня проблема с Windows Mobile 6.5 Professional. Разработал приложение, работающее на Windows Mobile 6.5 classic, открывающее веб-сайт из веб-браузера. В Professional сайт корректно работает в IE, но не работает javascript / jquery в моем приложении с веб-браузером. Мне показалось странным содержимое агента запросов (Request.UserAgent) из Professional: Mozilla / 4.0 (совместимый, MSIE 6.0, Windows CE; IEMobile 7:11)

При Классике появляется следующий результат:

Mozilla / 4.0 (совместимо, MSIE 6.0, Windows NT 5.1, Windows Phone 6.5.3.5


person Rafael Triani    schedule 21.06.2013    source источник
comment
Добро пожаловать в StackOverflow. Что ж, вы поместили информацию о тегах в строку темы (чего не следует делать - это относится к тегам) и, кажется, забыли задать вопрос. :-) Можете ли вы отредактировать свое сообщение и изменить тему на что-то более значимое, а также прояснить проблему и задать нам вопрос, на который мы можем ответить? Спасибо.   -  person Ken White    schedule 21.06.2013
comment
@RafaelTriani Что именно не работает. Если это код, то нам нужен код.   -  person Security Hound    schedule 21.06.2013
comment
@Ramhound Не выполняйте javascript / jquery на веб-сайте, когда я запускаю приложение с помощью веб-браузера.   -  person Rafael Triani    schedule 21.06.2013


Ответы (1)


Недавно я наткнулся на ту же проблему. JavaScript работает в IE, но не в моем компоненте веб-браузера C #.

Решением было проверить раздел реестра HKLM \ Security \ Internet Explorer \ MSHTML. Это должно быть 0, чтобы разрешить использование javascript внутри веб-браузера! Теперь мой код проверяет и меняет этот ключ reg на ноль (если не alreday 0), а затем вызывает InitializeComponents ().

Клавиша изменит поведение веб-браузера и другим способом: клавиши со стрелками теперь не перемещают фокус со ссылки на ссылку, а прокручивают представление веб-браузера.

Надеюсь, это тебе тоже поможет.

РЕДАКТИРОВАТЬ: вот пример кода:

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WebBrowser
{
    public partial class Form1 : Form
    {

    public Form1()
    {
        checkMSHTML(0);
        InitializeComponent();
        webBrowser1.ScriptErrorsSuppressed = false;
    }

    private void toolBar1_ButtonClick(object sender, ToolBarButtonClickEventArgs e)
    {
        switch (e.Button.ImageIndex)
        {
            case 0:
                webBrowser1.Url = new Uri( "http://192.168.128.5/www");
                break;
            case 1:
                this.Close();
                break;
        }

    }

    /// <summary>
    /// check and change MSHTML rendering engine
    /// </summary>
    /// <param name="iVal">0 = use new IE6 engine, enable JavaScript
    /// 1 = use old PIE engine</param>
    /// <returns></returns>
    bool checkMSHTML(int iVal)
    {
        bool bRet = false;
        Microsoft.Win32.RegistryKey rKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"Security\Internet Explorer",true);
        if (rKey != null)
        {
            int iMSHTML = (int) rKey.GetValue("MSHTML");
            if (iMSHTML != iVal)
            {
                rKey.SetValue("MSHTML", iVal, Microsoft.Win32.RegistryValueKind.DWord);
                rKey.Flush();
                rKey.Close();
                bRet = true;
            }
            else
            {
                rKey.Close();
                bRet = true;
            }
        }
        return bRet;
    }
    }
}
person josef    schedule 21.06.2013
comment
Йозеф, вы можете опубликовать пример того, как это сделать на C #? Я начал программировать на Windows Mobile через несколько дней и у меня нет большого опыта. Ты для тебя, комментатор, и помогите мне. - person Rafael Triani; 22.06.2013