private void JoinWebAppCommandExecute(object obj)
        {
            var listener = new ResponseListener
                (
                loadEventArg =>
                {
                    if (selectedDevice == null) return;

                    var webappSession = LoadEventArgs.GetValue<WebAppSession>(loadEventArg);

                    webappSession.WebAppSessionListener = webAppListener;
                    mWebAppSession = webappSession;

                    SendMessageCommand.Enabled = true;
                    LaunchWebAppCommand.Enabled = false;
                    LeaveWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Disconnect);

                    if (selectedDevice.HasCapability(WebAppLauncher.MessageSendJson)) SendJsonCommand.Enabled = true;
                    if (selectedDevice.HasCapability(WebAppLauncher.Close)) CloseWebAppCommand.Enabled = true;

                    isLaunched = true;
                    DisconnectMediaPlayerSession();
                },
                serviceCommandError =>
                {
                    var msg =
                        new MessageDialog(
                            "Error joining webapp");
                    msg.ShowAsync();
                }
                );
            webAppLauncher.JoinWebApp(webAppId, listener);
        }
        private void SetWebAppControls()
        {
            if (selectedDevice != null)
            {
                LaunchWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Launch);
                JoinWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Join);
                SendMessageCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.MessageSend);
                SendJsonCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.MessageSendJson);
                LeaveWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Disconnect);
                CloseWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Close);
                PinWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Pin);
                UnPinWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Pin);

                if (!isLaunched)
                {
                    CloseWebAppCommand.Enabled = false;
                    LeaveWebAppCommand.Enabled = false;
                    SendMessageCommand.Enabled = false;
                    SendJsonCommand.Enabled = false;
                }
                else
                {
                    LaunchWebAppCommand.Enabled = true;
                }

                WebAppResponseMessage = "";

                if (selectedDevice.GetServiceByName(WebOsId) != null)
                {
                    webAppId = "WebAppTester";
                }

                if (selectedDevice.HasCapability(WebAppLauncher.Pin))
                {
                    SubscribeIfWebAppIsPinned();
                }
                else
                {
                    PinWebAppCommand.Enabled = false;
                    UnPinWebAppCommand.Enabled = false;
                }
            }

            webAppListener = new WebAppSessionListener
                (
                (session, message) =>
                {
                    var str = LoadEventArgs.GetValue<string>(message);
                    var json = LoadEventArgs.GetValue<JsonObject>(message);
                    App.MainDispatcher.RunAsync(CoreDispatcherPriority.High, () =>
                    {
                        if (str != null)
                            WebAppResponseMessage += str + "\n";
                        else if (json != null)
                            WebAppResponseMessage += json.Stringify() + "\n";
                    });
                },
                session =>
                {
                    JoinWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Join);
                    SendMessageCommand.Enabled = false;
                    SendJsonCommand.Enabled = false;
                    CloseWebAppCommand.Enabled = false;
                    LeaveWebAppCommand.Enabled = false;

                    mWebAppSession = null;
                    isLaunched = false;
                }
                );

            connectionListener = new ResponseListener
                (
                loadEventArg =>
                {
                    if (selectedDevice == null) return;

                    if (selectedDevice.HasCapability(WebAppLauncher.MessageSendJson))
                        SendJsonCommand.Enabled = true;
                    if (selectedDevice.HasCapability(WebAppLauncher.MessageSend))
                        SendMessageCommand.Enabled = true;

                    LeaveWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Disconnect);
                    CloseWebAppCommand.Enabled = true;
                    LaunchWebAppCommand.Enabled = true;
                    isLaunched = true;
                },
                serviceCommandError =>
                {
                    SendJsonCommand.Enabled = false;
                    SendMessageCommand.Enabled = false;
                    CloseWebAppCommand.Enabled = false;
                    LaunchWebAppCommand.Enabled = true;
                    isLaunched = false;

                    if (mWebAppSession != null)
                    {
                        mWebAppSession.WebAppSessionListener = null;
                        mWebAppSession.Close(null);
                    }
                }
                );
        }
        private void LeaveWebAppCommandExecute(object obj)
        {
            if (mWebAppSession != null)
            {
                mWebAppSession.WebAppSessionListener = null;
                mWebAppSession.DisconnectFromWebApp();
                mWebAppSession = null;

                LaunchWebAppCommand.Enabled = true;
                JoinWebAppCommand.Enabled = selectedDevice.HasCapability(WebAppLauncher.Join);
                SendJsonCommand.Enabled = false;
                SendMessageCommand.Enabled = false;
                LeaveWebAppCommand.Enabled = false;
                CloseWebAppCommand.Enabled = false;

                isLaunched = false;
            }
        }
        private void LaunchWebAppCommandExecute(object obj)
        {
            var listener = new ResponseListener
                (
                loadEventArg =>
                {
                    var webappSession = LoadEventArgs.GetValue<WebAppSession>(loadEventArg);

                    webappSession.WebAppSessionListener = webAppListener;
                    isLaunched = true;
                    DisconnectMediaPlayerSession();
                    mWebAppSession = webappSession;
                    if (selectedDevice.HasAnyCapability(new List<string>
                    {
                        WebAppLauncher.MessageSend,
                        WebAppLauncher.MessageReceive,
                        WebAppLauncher.MessageReceiveJson,
                        WebAppLauncher.MessageSendJson
                    }))
                    {
                        webappSession.Connect(connectionListener);
                    }
                    else
                    {
                        connectionListener.OnSuccess(webappSession.LaunchSession);
                    }

                },
                serviceCommandError =>
                {
                    var msg =
                        new MessageDialog(
                            "Error launching webapp");
                    msg.ShowAsync();
                }
                );
            webAppLauncher.LaunchWebApp(webAppId, listener);
        }
コード例 #5
0
 public void OnWebAppSessionDisconnect(WebAppSession webAppSession)
 {
     if (onWebAppSessionDisconnect != null)
         onWebAppSessionDisconnect(webAppSession);
 }
コード例 #6
0
 public void OnReceiveMessage(WebAppSession webAppSession, object message)
 {
     if (onReceiveMessageFunc != null)
         onReceiveMessageFunc(new LoadEventArgs(webAppSession), new LoadEventArgs(message));
 }