A useful snippet HTML5 hybrid app for Android, using the method addJavascriptInterface to save and write file in external storage:
// write storage permission in your manifest file of Android project// start code @SuppressLint({"SetJavaScriptEnabled","JavascriptInterface"}) public class MainActivity extends Activity { public WebView webView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // source activity_main.xml webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new WebAppInterface(this), "Android"); webView.setWebViewClient(new WebViewClient()); // important set Web Chrome Client webView.setWebChromeClient(new WebChromeClient()); webView.loadUrl(url); //local or remote } // final class for save and write file in external storage final class WebAppInterface { Context mContext; /** Instantiate the interface and set the context */ WebAppInterface(Context c) { mContext = c; } public void writeToFile(String data, String filename, String tag) { try { File root = android.os.Environment.getExternalStorageDirectory(); File dir = new File (root.getAbsolutePath() + "/foldercustom"); dir.mkdirs(); File file = new File(dir, filename); FileOutputStream f = new FileOutputStream(file); PrintWriter pw = new PrintWriter(f); pw.println(data); pw.flush(); pw.close(); f.close(); } catch (IOException e) { Log.e(tag, "File write failed: " + e.toString()); } } } } // Now open html file in www folder ...
