WebKit, embedding, dynamic resources - webkit

I assume you can embed WebKit into another desktop app and send a string to it, say:
<html>Hello world!</html>
and it will display it inside the window.
My question is, how do I send an image to it, if I have its compressed representation (JPEG dump) loaded in memory? E.g.:
unsigned char image[] = {123, 183, 234, ... };
Related question, what happens if I write:
<html><img src="URL"></html>
at the URL end, there has to be web server, OK - but is there a way to display an image in WebKit without a web server?

Use file or Data URIs,
http://en.wikipedia.org/wiki/Data_URI_scheme

Related

Register a sound already loaded as a base64 or binary in soundjs library

I have a big problem, I have not found a solution yet for.
In short I have a front end web page where a custom API build on the fly audio tracks.
All the tracks are temporarily stored in a variable within the browser as base64 strings. My problem is that i would like to register these sounds in createjs to manage them easily.
How could I register sounds in soundjs by using audio base64 content rather than a path, that doesn't exists because the page is state less.
As a simple example:
var audioTrack = "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xaLuF+xQ4doaokwE9l1CYUHBZjotEhMpCgnn2MuU1aB//qydHUoqBylRtj7f7ImOFBEa9mKtNGf///1WQqGQXMzAKJnQa4cMPA3ef2Gxr1Wbf/mAQDJo4OQWGtUEqAA+hHFqchU3k1I1hv5ukZc2YvGWsCiYbSUTMRHgefjslnIjUkMpdizD1yYg2Yf/82LEMCh75pQWwxFFChlgTKk138mdz9e5u2chtHjqJlpMM40IgOxPNLukPISdH//+/dbgks5JG9qtlf//8VKO5llMOEtSpPf////////EOfJ6rlDBohoEtCzJQ09niJeapNFe9B2KU8xMy6fHzX/////NpbyYHEB/c0k2RZcSEAAAbuARaUYwTcVeLUpvWeZUs/Myl2vdJaak5dg1//NixB4d+yad/sJKzBxtNGbbbS0p2e0twFFJNV0x5ZEIRlOZQmBAkczDbsKHY3kf9ZWOIRoFGXSIVZPJoWyEUBXFxW5Nyvf5S///8rlb1Kaz/l0vTuzObi1QlDsgn/HAYmMJh1QlG0ASiKKtKVVR4r9WyYrCiJJ8QE6UgErPJCkexK83mJTXa9PdbYmpXf7snloTUfSXes1dtRhzYv/zYMQ2HkK2jLZ5hURm72pyUFBTsggxR//9S1odCqJI8u7f61SwoIcxkd9nR7vf//7kd76Uu1wrLMrAOtpgXLESxGJg6ssWBr/JCYkBlluSDKpy5CY1WrVtDkxPWAFAOP4cQPkJEPUllKPkNSWFWvdVyyESpIkVImkzgGp4IWkTXpYVCpFGvGOfCJmOdYLAkKn/yx4OgISlQaBr/P/zYsRMHIkeZAxj0og0VBU7W4SvDX+dPAqEpENBWeEScRToiPFbrh8RWBr/JKPAqAivDSoIspXnTUbq5H91z9gIl1GdkDHlCNpmzSSCE7p9GrwaRFpMTHuhMKnp6GT4WGXo0jtfaUhNNC03kkf3IMWX2OyoZUnDfQg0pG5jhjU/qbnPD6ogsyEJpo8skME04eMFhiF6kInUqQY8mQP/82LEaR3LxgwAWMYJy52Yc7pisxt7JQVbZoJVEQaRImpLNSRC5QusIQoK5GsVVUoalVVRKqQYT6k2vhQEjgYCb4fqsVVql/w71fvGAjvdS9m4VI6q0qpKq//+pQ4za/wozMdCgLdXpf+1CqqhQEBEl9UKAqpfsXMozNGP9gIV//+xrqqgICxUNAUFQalpboVMQU1FMy45OS41VVVV//NixIEc4630AEhGVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ=="
createjs.Sound.registerSound([src], "audioTrack"); // HOW CAN I USE THIS FUNCTION TO REGISTER MY STRIN
createjs.Sound.play("audioTrack"); // AND THEN PLAY IT
Instead of putting in a variable you can create an audio element, like this:
var snd = new Audio("data:audio/wav;base64," + base64string);
snd.play();
Use de HTMLAudioPlugin Class
Here have more info, if you have problem with new Audio()
play .wav sound file encoded in base64 with javascript

Sharing StorageItems from a byte[] array

I want to implement the Share source contract in my WinRT C# Metro app (Windows Release Preview). My app is storing arbitrary files. Not in the filesystem, but instead I get the data over a WCF service as byte[]. Now I want to share such "files" in my app.
The only possibility I've seen with a standard data format is using the SetStorageItems() method on the DataPackage. Thus I'm facing the challenge to convert the data from my byte array to a StorageFile, which can be shared. I found the StorageFile.CreateStreamedFileAsync() method and wanted to use it in this way:
// filename: string
// fileContent: byte[]
// ... setting DataPackage title and description ...
DataRequestDeferral deferral = args.Request.GetDeferral();
var file = await Windows.Storage.StorageFile.CreateStreamedFileAsync(filename,
async stream => await stream.WriteAsync(fileContent.AsBuffer()), null);
args.Request.Data.SetStorageItems(new List<IStorageItem> { file });
deferral.Complete();
It compiles fine, but it doesn't work as expected. I've tried the sharing with the standard Mail app. The Mail share view opens and I can create a new mail. The file is shown without thumbnail (as expected), but the e-mail can't be sent. It's showing the sending progress for several minutes and then an error occurs: "Couldn't share {filename} with Mail.". The share charm shows "Something went wrong" and "[...] Mail can't share right now. Try again later.".
It works perfectly when I load the StorageFile from the file system: the mail opens and is sent within seconds, no problems here. So either I'm using CreateStreamedFileAsync() wrong or there's a bug in this method, what do you think?
In the callback passed into CreateStreamedFileAsync, you need to actually dispose of the object - that signals to the OS that you are done.
Wrote a complete example here
The Mail app is not a target for sharing files. From http://blogs.msdn.com/b/b8/archive/2012/06/14/building-the-mail-app.aspx: "Mail supports sharing text, links, and pictures."
Remember that there are 2 parts of the Share contract: Share sources and Share targets. As you know, there are many different data formats that can be shared between them, like text, pictures, URIs, and files. The full list of the different data formats that are supported is at http://msdn.microsoft.com/en-us/library/windows/apps/hh771179.aspx.
I recommend that you use the Share Target Sample app to test that your file is being shared properly - share to this and it will display everything that is being shared from your app as a source (and it does accept files for sharing). You can download it from http://code.msdn.microsoft.com/windowsapps/Sharing-Content-Target-App-e2689782. You can also use the Share Source Sample app as an example and leverage code from this app; you can download it from http://code.msdn.microsoft.com/windowsapps/Sharing-Content-Source-App-d9bffd84.
Hope that helps!
Ok, perhaps the preview version of the Mail app doesn't handle the sharing target contract correctly. Using the SDK sample app "Sharing Content Target App" from http://code.msdn.microsoft.com/windowsapps/Sharing-Content-Target-App-e2689782, sharing a StorageItem created in memory with the StorageFile.CreateStreamedFileAsync() method posted above works fine.
Thus, that's the way you should go when you want to share in-memory byte[] arrays. For testing, make sure that the share target app doesn't run in Visual Studio when you want to share data from another app with it. Then the sharing sidebar mysteriously will disappear automatically...

Show contents of a zip file in a WebView

I want to have a WebView that displays some static files from the application bundle. Since I have a large number of small files, I'd like to pack them all into a compressed archive so the application doesn't take up too much space. What's the best way to make this happen?
This should help you out: http://code.google.com/p/ziparchive/
To display data in the WebView:
On Mac OS X use WebFrame's loadHTMLString:baseURL:
On iOS use UIWebView's loadHTMLString:baseURL:
What you probably want to do, is implement an NSURLProtocol subclass that will resolve relative URLs by reading them from the zip archive. That way, you only need to initially read the "main" HTML file from the zip into memory, and the others will be read in on demand. To get WebKit to use your custom URL protocols for resolving relative paths, you could instantiate the WebView like this:
[[web_view mainFrame] loadHTMLString:your_main_html baseURL:[[NSURL alloc] initWithString:#"zip:///"]];
Apple has a really good example of combining a custom URL protocol with a WebView here:
https://developer.apple.com/library/mac/#samplecode/SpecialPictureProtocol/Introduction/Intro.html#//apple_ref/doc/uid/DTS10003816

Detecting corrupted jpg files before or during upload

I have an ASP application that uses ASPImage.Image to resize the uploaded image and then save the file to the server and save it in the database. However, it appears that if a user uploads a corrupted file the resulting image is blank white image.
I need a way to check if the file is corrupted before the image is passed to ASPImage.Image, that will then inform the user that the file is corrupted.
Can this be done with javascript, vbscript or ASPImage.Image itself?
Any assistance would be greatly appreciated.
Best Regards,
Paul Jacobs
There is no way to detect a corrupt image in either javascript or vbscript - you will need to try using ASPImage.Image directly.
It has an Error property, this will probably have an error detailing that a corrupt file has been loaded - did you try that? That is, if it is populated, chances are that the file was corrupt.
Additionally, the LoadImage method returns a boolean - I assume it will return false if the image couldn't be loaded due to corruption.
You can use the code here: http://forums.aspfree.com/code-bank-54/pure-asp-upload-script-with-additional-features-94647.html
Then check the image Width and Height - if 0 it means the uploaded file was not a valid image.
This is pure classic ASP code without third party components.

Other ways to check the file size before upload

Is there any other way that I can just check the size of a file before upload? The requirement is if the file exceeded the limit, the form mustn't submit. If it's not, I have to do the ordinary upload using the form and I don't have to exactly upload the file to the server using Flash.
Is there any other way that I can just check the size of a file before upload?
Not in JavaScript, the file size is not in the DOM.
when instantiating SWFUpload, there are two parameters you need to pass: file_size_limit, and file_queue_error_handler:
new SWFUpload({
file_size_limit: "10 MB",
file_queue_error_handler: queueErrorHandler,
[...]
})
and then:
function queueErrorHandler(file, errorCode) {
if (errorCode == SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT) {
alert("File exceeds the 10MB limit!");
}
}
this checks if the file size is within limits before starting the upload
with the W3C FileAPI (implemented at least by Firefox 3.6) you can.
See this link for details
http://hacks.mozilla.org/2009/12/w3c-fileapi-in-firefox-3-6/
Cheers
Checking the file size through the SWFUpload control is possible. Just put the SWFUpload control outside of the Web form tags. Tell the user click on the SWFUpload button and point to his upload file. Use javascript to determine the file size, then utilize this information as you see fit such as populating a validation function. Then your main form will need to ask the user to point to their upload file again, and it is this field which will do the actual uploading of the file. When the form is submitted, the SWFUpload control will be completely ignored since it's not part of the main form.