Thanks SOB for that code.
I works when I put my all html, css and images files into assets
folder and try to load with webView.loadUrl("file:///android_asset/
Google.html") . All css and images loaded completely.
However similarly when I tried putting all my files into sdcard. It
does not work at all.
Just few more Ques:-
1- Can I save HTML/CSS/Images into that assets folder dynamically at
run time. [As far as I know that assets folder deas not have any
phusicall existence in the Android FileSystem ]
2- If not above point, then How that behavoir can be simulated for
sdcard/or any other physical directory.
Anyways Thanks for all your help
Ajeet
On Apr 17, 7:04 pm, Streets Of Boston <[email protected]> wrote:
> I Ajeet,
>
> In one of my apps, I load an HTML page as follows:
>
> webView.loadUrl("file:///android_asset/help/helpgube.html");
>
> Below is a snippet from the helpgube.html:
>
> <head>
> <meta http-equiv="content-type" content="text/html;
> charset=utf-8" />
> <link type="text/css" rel="stylesheet" id="helpCSS" href="./
> helpgubecss.css" />
> </head>
>
> And here a snippet from helpgubecss.css
>
> body {
> BACKGROUND-POSITION: 0px 0px;
> BACKGROUND-IMAGE: url(../images/screen1_trans.png);
> BACKGROUND-REPEAT: repeat-y;
> BACKGROUND-COLOR: transparent
>
> }
>
> As you can see, all internal links toCSSand images are relative. My
> code does not use loadDataWithBaseURL. However, i think the form of
> the url may be the key: "file:///android_asset/"
>
> On Apr 17, 8:53 am, Ajeet Singh <[email protected]> wrote:
>
>
>
> > Hi Wes,
>
> > I tried the way which you are saying. but could not make it working.
> > It was giving "file not found" exception. Even mine HTML is not
> > getting loaded. May be I am paasing the wrong URL to my
> > "LocalFileContentProvider.java"
>
> > Can you give some hint how it can be done. or Can you give some sample
> > code how the URL is paases and send to our
> > LocalFileContentProvider.java
>
> > Anyways I am pasting my code here. Can you see what I am doing wrong
> > here?
>
> > Any ways thanks for all help.
>
> > What I have done is:
> > 1- I pushed Google.html / ex.css/ test.jpg file to asset folder
> > ____________________________________________________________________
> > LocalFileAccess.java
> > ----------------------------------------
> > public class LocalFileAccess extends Activity {
> > @Override
> > public void onCreate(Bundle icicle) {
> > super.onCreate(icicle);
> > WebView webView = new WebView(this);
> > setContentView(webView);
>
> > Uri uri = Uri.parse("content://
> > com.android.LocalFileAccess/Google.html");
> > try {
> > is = getContentResolver().openInputStream(uri);
> > byteArray = new byte[is.available()];
> > read = is.read(byteArray);
> > System.out.println("Available: " + is.available());
> > System.out.println("Bytes read: " + read);
> > } catch (FileNotFoundException e) {
> > e.printStackTrace();
> > } catch (IOException e) {
> > e.printStackTrace();
> > }
>
> > webView.loadData(new String(byteArray), "text/html",
> > "utf-8");
> > }}
>
> > ____________________________________________________________________
> > LocalFileContentProvider.java
> > -----------------------------------------------
> > public class LocalFileContentProvider extends ContentProvider {
>
> > private static final String URI_PREFIX = "content://
> > com.android.LocalFileAccess";
>
> > public static String constructUri(String url) {
> > Uri uri = Uri.parse(url);
> > return uri.isAbsolute() ? url : URI_PREFIX + url;
> > }
>
> > @Override
> > public ParcelFileDescriptor openFile(Uri uri, String mode) throws
> > FileNotFoundException {
> > //URI u =
> > URI.create("file:///data/data/com.android.LocalFileAccess/
> > Google.html");
> > File file = new File(uri.getPath());
> > ParcelFileDescriptor parcel =
> > ParcelFileDescriptor.open(file,
> > ParcelFileDescriptor.MODE_READ_ONLY);
> > return parcel;
> > }
>
> > // Rest of methods I override, but I did not pasted it
> > here.}
>
> > ____________________________________________________________________
> > AndroidManifest.xml
> > ----------------------------------------------
>
> > <provider android:name="LocalFileContentProvider"
>
> > android:authorities="com.android.LocalFileAccess"
>
> > android:grantUriPermissions="true"
> > />
> > ____________________________________________
>
> > Thanks,
> > Ajeet Singh
>
> > On Apr 17, 9:56 am, wescorp <[email protected]> wrote:
>
> > > After creating a ContentProvider using the mentioned tutorial, in your
> > > html code, refer to thecssas a URI such as
>
> > > <head>
> > > <link rel=”stylesheet” type=”text/css”
> > > href=”content://com.yournamespace.maps.LocalFileContentProvider/
> > > asset_filename.css” />
> > > </head>
>
> > > to insert thecsscontent into the WebView.
>
> > > I use something similar for javascript.
>
> > > Cheers,
> > > Wes
>
> > > On Apr 15, 1:23 pm, wescorp <[email protected]> wrote:
>
> > > > There are several examples of content providers for different purposes
> > > > around.
>
> > > > Here is one I found useful.
>
> > > >http://blog.tourizo.com/2009/02/how-to-display-local-file-in-android....
>
> > > > Mark Murphy's book examples is also good for learning
> > > > ContentProviders.
>
> > > > Cheers,
> > > > Wes- Hide quoted text -
>
> > - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Android Discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---