четверг, 21 ноября 2019 г.

UScommander

Давно планировал сделать управляющий софт для ультразвукового генератора. Была задумка по-быстрячку вернуться к забытому LabView. Но, к сожалению, NI давно перестал поддерживать ту старенькую версию, на которой я учился. А современные версии вьюхи во-первых весят непомерно много (гигабайты), и во-вторых поменяли идеологию работы по протоколу ModBus. Так что пришлось изобретать велосипед.

пятница, 8 ноября 2019 г.

Запустить ютуб или страничку в стороннем браузере

Запустить в ютуб-апликухе

Dim Intent1 As Intent
Dim videoid As String
videoid = "klMN44nn44n"
Intent1.Initialize(Intent1.ACTION_VIEW, "vnd.youtube:"&videoid)

Intent1.PutExtra("VIDEO_ID",videoid)
StartActivity(Intent1)

Обработка ошибки загрузки страницы

Code:
Sub Globals
    Private MainWebView As WebView
    Private WVE As WebViewExtras
    Private DWVC As DefaultWebViewClient
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("layout")
   
    DWVC.Initialize("WebViewClient")
    WVE.Initialize(MainWebView)
    WVE.SetWebViewClient(DWVC)

    WVE.LoadUrl("<your link>")
End Sub 
 Sub WebViewClient_ReceivedError(ErrorCode As Int, Description As String, FailingUrl As String
)    
 WVE.LoadHtml(CustomWebviewError.GetErrorPageHtml(Description))/span>

 End Sub

Key "Back" reaction

Вариант с подтверждающим месседжбоксом
Code:
Sub Activity_KeyPress (KeyCode As Int) As Boolean
    If KeyCode = KeyCodes.KEYCODE_BACK Then
        If Msgbox2("Are you sure to exit?""""Yes""""No"Null) = DialogResponse.POSITIVE Then
            Return False
            ExitApplication '...or whatever other previous killing actions.        Else
            Return True
        End If
    Else
        Return False    ' Handle the other presses in the OS    End If
End Sub
Вариант с двойным нажатием в течении 3х секунд
Code:
Sub Globals
Dim closeCounter As Int                    ' For double click exit routineDim closeTimer As Long
end sub
Sub Activity_KeyPress (KeyCode As Int) As Boolean

    Select KeyCode
        Case KeyCodes.KEYCODE_BACK
                                                          
            closeCounter = closeCounter + 1                    ' Handle the user exit request  
            ' First time so start the counter  
            If closeCounter = 1 Then                  
                closeTimer = DateTime.Now
                ToastMessageShow("Press Back again to exit"False)
            End If
  
            ' Second time but not within 3 seconds, reset to "First time"  
            If closeCounter = 2 AND DateTime.Now > closeTimer + 3000 Then
                closeCounter = 1
                closeTimer = DateTime.Now
                ToastMessageShow("Press Back again to exit"False)
            End If
  
            ' Two tries within 3 seconds, we're done  
            If closeCounter = 2 Then
                closeCounter = 0
                Activity.Finish
            End If

            Return True
        Case Else
            Return False
    End Select
  End Sub