How to get access monkey://data/ from native code?
Monkey Forums/Monkey Programming/How to get access monkey://data/ from native code?
| ||
| Android: I tried to use monkey protocol to load html page from data folder into webview _webView.loadUrl("monkey://data/Index.htm");webview shows 404 error message. Read internet and change code to use file:// protocol _webView.loadUrl("file:///android_asset/monkey/Index.htm");It works but will has some troubles with security. How to get access to files under data folder in iOS and WP/WinRT targets? |
| ||
| PathToFilePath convert first. |
| ||
| hsutuo wrote: PathToFilePath convert first. Hmm, its source String PathToFilePath( String path ){
return "";
}
|
| ||
| i believe this webview will show extra window. did you try OpenUrl with local html data? |
| ||
| Markus wrote: i believe this webview will show extra window. I create webview in the current layout, it doesn't open new window when webviewclient released. Markus wrote: did you try OpenUrl with local html data? I didn't. Do you mean that I can to view java code for this call? |
| ||
| nikoniko wrote: I didn't. Do you mean that I can to view java code for this call? App crashes on OpenUrl("monkey://data/Index.htm") line and OpenUrl("file:///adroid_asset/monkey/Index.htm") too. |
| ||
| -- PathToFilePath convert first. Hmm, its source This one is the native PathToFilePath method. String PathToFilePath( String path ){
if( !path.startsWith( "monkey://" ) ){
return path;
}else if( path.startsWith( "monkey://internal/" ) ){
File f=_activity.getFilesDir();
if( f!=null ) return f+"/"+path.substring(18);
}else if( path.startsWith( "monkey://external/" ) ){
File f=Environment.getExternalStorageDirectory();
if( f!=null ) return f+"/"+path.substring(18);
}
return "";
}You'll find it in "MonkeyXPro-Versionnumber-/targets/android/modules/native/androidgame.java" Same goes for iOS and other. OpenURL() doesn't call PathToFilePath. So monkey://data will result in an error. Because monkey://data/whatever isn't a valid file path in java. This native java code should work. Haven't tested it. File f=BBAndroidGame.AndroidGame().GetActivity().getFilesDir(); if( f!=null ) f+"/Index.htm"; // Index.htm should be inside your data folder _webView.loadUrl(f); |
| ||
| Ironstorm Thanks! |