« Meine Bundestagspetit… | Home | MBS FileMaker Plugin,… »

Interactive FileMaker Containers are Webviewers

Did you notice that the interactive Containers in FileMaker are really Webviewers?

Even a simple picture is shown using a Webviewer with an IMG tag:
<html style="height: 100%;">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <style>
            body {background-color:rgba(100%,100%,100%,1);}
        </style>
    </head>
    <body style="border:0; margin:0; padding:0; overflow: hidden; height: 100%; ">
        <img src="file:////Volumes/Mac/Users/cs/Library/Caches/FileMaker/ContainerCache/Interactive_Container_Webviews/5B5E9D4AA552A54E72180807B75548D6/LocalThumbs/45/7D/15B8790A/D6942AC2/400D5012/8E5DW/968x645.jpg" width="484" height="323" style="position:absolute; top:53px; left:0px;">
    </body>
</html>
We get the html text using the WebView.GetHTMLText. Please define a name for the container control, so you can reference it later in the Webviewer calls. For a movie on Mac FileMaker uses an HTML5 Video tag, which gives us some javascript possibilities:
<html style="height: 100%;">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <script type="text/javascript">
            function stop() { var thePlayer = document.getElementById('fm-player'); thePlayer.pause(); } 
        </script>
        <style>
            body {background-color:rgba(100%,100%,100%,1);}
        </style>
    </head>
    <body style="border:0; margin:0; padding:0; overflow: hidden; height: 100%; ">
        <video id="fm-player" src="file:///Volumes/Mac/Users/cs/Library/Caches/FileMaker/ContainerCache/Interactive_Container_Webviews/5B5E9D4AA552A54E72180807B75548D6/LocalThumbs/60/D8/1FE4E8EC/250843FA/E9A86910/17F9/test.mp4" controls="true" width="100%" height="100%" style="position:absolute; top:0px; left:0px;">
            />
        </video>
    </body>
</html>
As you see, the video tag has the id "fm-player" and we can use that to run Javascript.

MBS( "WebView.RunJavaScript" ; "movie"; "document.getElementsByTagName('video')[0].play();" )

This function call will look for the first video tag and start the movie in the webviewer using the play command..

Next the HTML from Windows with using the MediaPlayer embedded video player:
<html style="height: 100%;">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <style>
            body {background-color:rgb(255,255,255);}
        </style>
    </head>
    <body style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; height: 100%; overflow: hidden; transform: scale(2);">
        <object width="100%" height="100%" id="Player" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
            <PARAM NAME="URL" VALUE="C:\Users\Administrator\AppData\Local\Temp\FileMaker\ContainerCache\Interactive_Container_Webviews\6357DC74F75BA5A743F9BEC24832484D\LocalThumbs\60\D8\1FE4E8EC\250843FA\E9A86910\17F9\test.mp4"><PARAM NAME="rate" VALUE="1"><PARAM NAME="balance" VALUE="0"><PARAM NAME="currentPosition" VALUE="0"><PARAM NAME="defaultFrame" VALUE=""><PARAM NAME="playCount" VALUE="1"><PARAM NAME="autoStart" VALUE="0"><PARAM NAME="currentMarker" VALUE="0"><PARAM NAME="invokeURLs" VALUE="-1"><PARAM NAME="baseURL" VALUE=""><PARAM NAME="volume" VALUE="50"><PARAM NAME="mute" VALUE="0"><PARAM NAME="uiMode" VALUE="full"><PARAM NAME="stretchToFit" VALUE="0"><PARAM NAME="windowlessVideo" VALUE="0"><PARAM NAME="enabled" VALUE="-1"><PARAM NAME="enableContextMenu" VALUE="-1"><PARAM NAME="fullScreen" VALUE="0"><PARAM NAME="SAMIStyle" VALUE=""><PARAM NAME="SAMILang" VALUE=""><PARAM NAME="SAMIFilename" VALUE=""><PARAM NAME="captioningID" VALUE=""><PARAM NAME="enableErrorDialogs" VALUE="0"><PARAM NAME="_cx" VALUE="25612"><PARAM NAME="_cy" VALUE="22648"><param name="autoStart" value="False"><param name="URL" value="file://C:\Users\Administrator\AppData\Local\Temp\FileMaker\ContainerCache\Interactive_Container_Webviews\6357DC74F75BA5A743F9BEC24832484D\LocalThumbs\60\D8\1FE4E8EC\250843FA\E9A86910\17F9\test.mp4">
        </object>
    </body>
</html>
Here on Windows you can do the same, but you have to lookup the documentation from Microsoft and you find the command to play:

MBS( "WebView.RunJavaScript" ; "player"; "document.getElementById('Player').controls.play();" ) Similar Javascript can be used to pause the video or query movie duration. Claris FileMaker Plugin
31 01 17 - 14:20