1) For "static" files, you can use R class and use the browser to
render them
2) For runtime-generated files or "out-of-resouces" class, you can't
use file:// URIs anymore
2)a) A possible solution: manually open the file and provide file
content as string, mimetype and encoding
2)a)issue) WebView must be used calling loadData method, which doesn't
allow load content from network (so you can't make it render external
images)
2)b) Another possible solution: create a content provider which
returns file content, mimetype and encoding by accessing a content://
URI. Theorically you can use WebView calling loadUrl method, which
renders the page correctly

Anyone has snippet code for contentprovider returning file content?
I've a lot of work to do and any help would be appreciated.

On 25 Ago, 01:51, handschuh <[EMAIL PROTECTED]> wrote:
> Why does this limit exists?
>
> If one wants to display html-code that has been fetched to view ONCE,
> this html-code has to be written in a content provider?
>
> On Aug 24, 12:49 pm, "[EMAIL PROTECTED]"
>
> <[EMAIL PROTECTED]> wrote:
> > So, creating a content provider, which returns the same content of the
> > file, would be accessed by loadUrl from webview, without any "url
> > filtering"?
> > Such as, for example... content://my.mailclient/231
> > Should retrieve the content of file "231.html": content provider acts
> > as "webserver".
> > Is it right?
>
> > On 24 Ago, 00:07, "Megha Joshi" <[EMAIL PROTECTED]> wrote:
>
> > > In that case you should use the content provider option mentioned
> > > earlier...Using a content provider would allow images as the content
> > > provider would be used for image loading too. Another alternative is to 
> > > put
> > > the image inline, using the data:// scheme.
>
> > > On Fri, Aug 22, 2008 at 4:47 AM, [EMAIL PROTECTED] <
>
> > > [EMAIL PROTECTED]> wrote:
>
> > > > I already done that but there's another limit: data rendered via
> > > > loadData arenotable to load remote resources (<img
> > > > src="http://...";>).
>
> > > > On 21 Ago, 22:21, "Megha Joshi" <[EMAIL PROTECTED]> wrote:
> > > > > On Wed, Aug 20, 2008 at 4:46 PM, Megha Joshi <[EMAIL PROTECTED]> 
> > > > > wrote:
> > > > > > For security reasons, WebView doesnotallow "file:" access any more.
>
> > > > > > If you want the link to be loaded in your activity, you should 
> > > > > > provide
> > > > a
> > > > > > WebViewClient and implement shouldOverrideUrlLoading with { return
> > > > false; }
>
> > > > > This option doesnotwork anymore, sorry for the confusion!
>
> > > > > So the only way to load local file contents into WebView, is as Gil
> > > > pointed
> > > > > out ...by loading the contents with loadData()/
>
> > > > > Sample code:
> > > > >  static final int MAXFILESIZE = 8096;
> > > > >  String path = uri.getPath();
> > > > >         File f = new File(path);
> > > > >         final long length = f.length();
> > > > >         if (!f.exists() || length > MAXFILESIZE) {
> > > > >             return;
> > > > >         }
>
> > > > >         // typecast to int is safe as long as MAXFILESIZE < MAXINT
> > > > >         byte[] array = new byte[(int)length];
>
> > > > >         try {
> > > > >             InputStream is = new FileInputStream(f);
> > > > >             is.read(array);
> > > > >             is.close();
> > > > >         } catch (FileNotFoundException ex) {
> > > > >             // Checked for file existance already, so this shouldnot
> > > > happen
> > > > >             return;
> > > > >         } catch (IOException ex) {
> > > > >             // read or close failed
> > > > >             Log.e(LOGTAG, "Failed to access file: " + path, ex);
> > > > >             return;
> > > > >         }
> > > > >         mWebView.loadData(new String(array), mimeType, null);
>
> > > > > There is a 8KB limit on the file size. So if your data is more that 
> > > > > 8KB,
> > > > you
> > > > > should create a content provider
> > > > > for your files and then the use the 
> > > > > ContentResolver.openContentURI()...
>
> > > > > > On Wed, Aug 20, 2008 at 4:34 PM, [EMAIL PROTECTED] <
> > > > > > [EMAIL PROTECTED]> wrote:
>
> > > > > >> I used WebView to display rich content emails (I'm writing a mail
> > > > > >> client). It worked well loading URI such as
> > > > > >> file://sdcard/filewhateveryouwant.xxx
> > > > > >> ...
> > > > > >> Now I upgraded to 0.9 and Android OS is displaying me apagewith 
> > > > > >> "The
> > > > > >> requested file wasnotfound."
>
> > > > > >> Maybe a PERMISSION issue?
>
> > > > > >> On 19 Ago, 20:36, "Megha Joshi" <[EMAIL PROTECTED]> wrote:
> > > > > >> > Browser doesnotsupport viewing local files...
>
> > > > > >> > On Tue, Aug 19, 2008 at 12:38 AM, Peli <[EMAIL PROTECTED]>
> > > > wrote:
>
> > > > > >> > > Is it possible to open a local file in the browser?
>
> > > > > >> > > In the Android browser, I tried menu / go to:
> > > > > >> > > file:///sdcard/test.html
>
> > > > > >> > > I always receive the error message:
> > > > > >> > > "Webpagenotavailable.
> > > > > >> > > Thewebpageat file:///sdcard/test.html couldnotbe loaded as:
> > > > > >> > > The requested file wasnotfound."
>
> > > > > >> > > even though the files exist in /sdcard/test.html.
> > > > > >> > > Do I have to use a different URL, or put files into a different
> > > > > >> > > folder?
>
> > > > > >> > > Peli
>
> > > > > >> > > PS: From within an application, there seems to be a way to load
> > > > local
> > > > > >> > > files:
>
> > > > > >> > > "The prefix "file:///android_asset/" will cause WebView to load
> > > > > >> > > content from the current application's assets folder."
>
> > > >http://code.google.com/android/reference/android/webkit/WebView.html
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new Android 0.9 SDK beta!
http://android-developers.blogspot.com/2008/08/announcing-beta-release-of-android-sdk.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to