Как включить плагин OpenTok для Internet Explorer

Я пытаюсь реализовать open tok для своего приложения для видеочата.

Я использую opentok.min.js v 2.2.9 с php SDK. Он отлично работает с Google Chrome и Firefox.

Согласно их объявлениям, он должен работать в IE с 32-битной ОС.

https://tokbox.com/opentok/libraries/client/js/release-notes.html

Но у меня не работает ни в одной версии IE.

Кто-нибудь знает, как реализовать это для IE?

// Detect whether this browser is IE
var isNotIE = function isIE() {
    var userAgent = window.navigator.userAgent.toLowerCase(),
            appName = window.navigator.appName;

    return !(appName === 'Microsoft Internet Explorer' || // IE <= 10
            (appName === 'Netscape' && userAgent.indexOf('trident') > -1));     // IE >= 11
};

function connect() {
    if (isNotIE() && OT.checkSystemRequirements()) {

        session = OT.initSession(apiKey, sessionId);
        sendMessage("Session has initialized. Connecting to session ... ");


        session.on({
            streamCreated: function(event) {
                sendMessage("New stream in the session: " + event.stream.streamId);
                var parentDiv = document.getElementById(subscriberElement);
                var replacementDiv = document.createElement("div"); // Create a div for the publisher to replace
                replacementDiv.id = "opentok_subscriber";
                parentDiv.appendChild(replacementDiv);

                subscriber = session.subscribe(event.stream, replacementDiv, subscriberProperties, function(error) {
                    if (error) {
                        console.log(error);
                    } else {
                        console.log("Subscriber added.");
                    }
                });
            },
            streamDestroyed: function(event) {
                sendMessage("Stream stopped streaming. Reason: " + event.reason)
            },
            signal: function(event) {
                sendMessage("Signal sent from connection " + event.from.id);
                // Process the event.data property, if there is any data.
            }
        });

        session.connect(token, function(error) {

            if (error) {
                sendMessage("Error connecting: ", error.code, error.message);
            } else {
                sendMessage("Connected to the session successfully.");
                displayBtn('connected');
            }
        });
    }else{
        sendMessage("What Should I do if it is IE?? :(");
    }
}


function sendMessage(message) {
    message = '<br>' + message;
    $("#statusbox").append(message);
}

person Tahmina Khatoon    schedule 14.09.2014    source источник


Ответы (1)


Теперь, когда подключаемый модуль поддерживает IE версии 8-11, вам не нужно включать условие isNotIE() && OT.checkSystemRequirements(), вы можете просто использовать один и тот же путь кода для всех этих браузеров.

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

В противном случае одно предложение кода: в обработчике событий streamCreated вместо использования 4 строк кода для создания нового элемента DOM и последующего добавления его в контейнер вы можете использовать параметр insertMode: "append". Это работает как для издателей, так и для подписчиков.

До:

var parentDiv = document.getElementById(subscriberElement);
                var replacementDiv = document.createElement("div"); // Create a div for the publisher to replace
                replacementDiv.id = "opentok_subscriber";
                parentDiv.appendChild(replacementDiv);
subscriber = session.subscribe(event.stream, replacementDiv, subscriberProperties, function(error) {
                    if (error) {
                        console.log(error);
                    } else {
                        console.log("Subscriber added.");
                    }
                });

После:

subscriber = session.subscribe(event.stream, document.getElementById(subscriberElement), { insertMode: "append" }, function (error) {
  if (error) {
    console.log(error);
  } else {
    console.log("Subscriber added.");
    // Set the ID of the DOM element if thats used elsewhere in the code
    subscriber.element.id = "opentok_subscriber";
  }
});
person Ankur    schedule 14.09.2014