I'm running appjs and I'm thinking of showing live content from the local webcam in the html and would like some hints on how to do this.
/Kristofer
Appjs is built on top of CEF so I think I am correct in saying that at the moment this functionality is not available out of the box. However the next version of AppJS will use content api which means that media and video should be available.
For now I would suggest that you develop your application in HTML5 using chrome and then run it inside AppJS later on when it catches up and provides these functions out of the box.
Related
I am developing a Master-Detail application which should show an embedded PDF in its detail view. The project is based on UI5 version 1.48, so the new PDFViewer control can be used.
In desktop mode, everything works as expected:
But on a mobile screen, PDF is not showing properly:
The data source property binding at the PDFViewer is done by OData path.
<FlexBox id="fbPDFViewer"
direction="Column"
renderType="Div"
class="sapUiSmallMargin">
<PDFViewer id="idPDFViewer"
source="{myModel>/myPDFUrl}"
title=""
busy="true"
showDownloadButton="false"
height="700px"
width="95%"
loaded="onPDFLoaded"
errorMessage="{i18n>notFoundText}"
errorPlaceholderMessage="{i18n>notFoundText}">
</PDFViewer>
</FlexBox>
Even the SAP sample for embedded usage doesn't work on mobile devices.
According to the source code (1.48), the viewer renders its PDF document directly in the app / iframe only when ..:
The source is valid
It's coming from the same domain
It has a valid URI format
UI5 thinks the user is using a desktop computer (Device.system.desktop returns true) or the displayTypeapi, available since 1.58, is set to Embedded.
UI5 detects that the user agent (browser) has a certain type of PDF plugin enabled. Currently, there are no known mobile browsers which support displaying PDF documents directly in the page.
The steps 2 and 3 explain why the PDF is not rendered on a mobile device even if the source is valid. In such cases, I guess the only option is to provide a download option instead of trying to render the PDF forcefully in the mobile app.
You can use nabi.m.PDFViewer from the the nabi.m library. It works cross device, even on iOS (where you typically don't have the adobe PDF plugin). For details see https://github.com/nzamani/ui5-nabi-m
There you will find also how to try it out on localhost. I have also added some detailed instructions for deployment of the library to NW ABAP as well as SAP CP.
You can find live demos at http://ui5lab.io/browser/#/Samples/nabi.m/Sample/nabi.m.PDFViewer.PDFViewer and http://ui5lab.io/browser/#/Samples/nabi.m/Sample/nabi.m.PDFViewer.InPagePDFViewer
Open the two links on your iOS device or any other device to see how it looks like.
On mobile devices (smartphones and tablets), the PDF viewer control renders a toolbar with the title and a download icon, which behaves as a standard device/browser file link. We've made this note in Fiori Design Guidelines 1.48 and we'll add it to the SDK documentation.
(More in openui5 issue 1759 on GitHub)
Thank you for your responses and hints...
Installing an Adobe Acrobat viewer on the mobile devices was not an option here.
Source of the PDF had same domain like app itself and had a valid URI format too
Due to project timeline in meantime I decided to fall back to a solution that SAP provided with it's "Paystub" (Fiori 1.0). Therein they're using a 3rd-Party control for displaying PDF's which unfortunately has an overhead of code and implementations steps but it works (with minor issues only) perfect on desktop devices as well as on mobile devices.
So far, this is workaround solved my requirement.
Thanks.
muaz-khan WebRTC-Experiment
How to edit the extension to be as I want
Thanks
No its not possible to do within browser, its the matter of end user privacy.
You can build your own native Windows/Mac application to get rid of this
Chrome is providing screen/window/tab capturing through chooseDesktopMedia API, it is available only from chrome extension and we cant call this API from web app.
That demo extension is showing how to use chooseDesktopMedia.
We have no control on the screen selection popup, we can only choose the
combination of screen/window/tab/audio with the DesktopCaptureSourceType
The Safari 7 inspector is marvelously line-mapping compiled javascript back to the coffeescript it came from. There are times, though, when I want to interact directly with the compiled javascript in inspector. How do I toggle source mapping off so I can play with the raw javascript?
In Safari 7, Source Maps are not something that you have to toggle on or off they are just always on like resources are always available in the web developer tool. If you want to jump to the raw source you can:
"...Command-click the file name to jump to the position in the original source file."
The Safari Developer Guide has more info on this.
We are going to develop a mobile app (iOS and Android), which should provide downloading and storing several user-selected PDF files and viewing them within the app (iOS with WebView) or with an external PDF Viewer (Android).
My Question is: Is this possible with Trigger.io? I didn't find anything concerning this in the official documentation. Can we do something with the file or the child browser / tabs module? If yes, do you have any examples?
Note: We will use Backbone.js and jQuery Mobile as additional libraries.
The Android webview doesn't allow for inline opening of PDFs - you can test that by opening e.g. http://trigger.io/cross-platform-application-development-blog/wp-content/uploads/2012/05/trigger.io-whitepaper.pdf in your stock browser.
On iOS, you can use:
forge.tools.getURL('my_file.pdf',
function (file) {
forge.tabs.open(file);
}
);
But that won't work on Android (tested on 2.3, 3 and 4.0).
Short answer - yes.
Downloading, storing, then showing/referencing later can definitely be done. Check out the forge.file documentation.
I have not tried the child browser feature yet. Although the tabs module will work, I think its best to just let the device (and its user settings) decide how to display/render the PDF. I am only saying this because my devices (especially the Android ones... 2.3 and 4.x) tend to behave differently. Either way... the device's "back button" always gets me back to where I left off in my trigger.io app.
I have uploaded a couple of tutorial videos in youtube.
In my winforms application (by using the AxShockwaveFlash object) i reproduce the selected video by the user.
AxShockwaveFlash1.LoadMovie(http://www.youtube ..video1)
Here comes the story.
The first time the user selects a video, reproduction works like a charm.
When the user selects to see the second video
AxShockwaveFlash1.LoadMovie(http://www.youtube ..video2)
the ShockwaveFlash continues the reproduction of the first selection
Try to use
AxShockwaveFlash1.Stop();
AxShockwaveFlash1.Movie = "Your source";
AxShockwaveFlash1.Play();
Pattern to avoid leaving flash arguments behind.
Without knowing how you have integrated the video in your form, the method I would do is using a webBrowsercontrol in the form and embed the video in the control.
msdn on webBrowsercontrol
I had encountered this problem and resolved it by changing the Embed property of the Ax object control to False.
I embed the videos via the movie URL each time as follows:
http://www.youtube.com/v/targetmovie&feature=player_embedded
Works a treat
Tamir,
the video is embedded. Not stored locally
This is because your application is loading flash player loader from the cache and then it's loading the real player from the site , finally this yield a security exception.
In internet explorer , in internet options set to check for new versions of the documents each time you visit the page.
You first need to extract the FLV file like here:
Getting an FLV from YouTube in .NET