switch to load html from file (form assets)
This commit is contained in:
parent
dc86fdeb8b
commit
a2c5d60e17
1 changed files with 36 additions and 7 deletions
|
@ -13,14 +13,41 @@ import android.widget.*;
|
||||||
//import android.widget.TextView;
|
//import android.widget.TextView;
|
||||||
import android.webkit.*;
|
import android.webkit.*;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import org.json.JSONObject;
|
||||||
//import android.webkit.WebView;
|
//import android.webkit.WebView;
|
||||||
//import android.webkit.WebMessage;
|
//import android.webkit.WebMessage;
|
||||||
//import android.webkit.WebMessagePort;
|
//import android.webkit.WebMessagePort;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
public class ExampleApp extends Activity {
|
public class ExampleApp extends Activity {
|
||||||
|
|
||||||
private static final String BASE_URI = "https://alexmahr.de";
|
private static final String BASE_URI = "https://alexmahr.de";
|
||||||
|
private WebMessagePort port;
|
||||||
|
private void initPort(WebView myWebView) {
|
||||||
|
final WebMessagePort[] channel=myWebView.createWebMessageChannel();
|
||||||
|
port=channel[0];
|
||||||
|
port.setWebMessageCallback(new WebMessagePort.WebMessageCallback() {
|
||||||
|
@Override
|
||||||
|
public void onMessage(WebMessagePort port, WebMessage message) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
myWebView.postWebMessage(new WebMessage("", new WebMessagePort[]{channel[1]}),Uri.parse(BASE_URI));
|
||||||
|
}
|
||||||
|
|
||||||
|
public String readFileFromAssets(String filename) {
|
||||||
|
String filecontents = "";
|
||||||
|
try {
|
||||||
|
InputStream stream = getAssets().open(filename);
|
||||||
|
int filesize = stream.available();
|
||||||
|
byte[] filebuffer = new byte[filesize];
|
||||||
|
stream.read(filebuffer);
|
||||||
|
stream.close();
|
||||||
|
filecontents = new String(filebuffer);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// I <3 java exceptions
|
||||||
|
}
|
||||||
|
return filecontents;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -39,17 +66,19 @@ public class ExampleApp extends Activity {
|
||||||
myWebSettings.setDisplayZoomControls(false);
|
myWebSettings.setDisplayZoomControls(false);
|
||||||
myWebSettings.setJavaScriptEnabled(true);
|
myWebSettings.setJavaScriptEnabled(true);
|
||||||
myWebView.addJavascriptInterface(this, "myJavaScriptInterface");
|
myWebView.addJavascriptInterface(this, "myJavaScriptInterface");
|
||||||
// providing a webpage inline
|
// load the html from assets file
|
||||||
String unencodedHtml = "<!DOCTYPE html><html><script> window.addEventListener('message',(e)=>{document.body.innerHTML='';u=document.createElement('div');u.innerHTML='message'+e.data;document.body.appendChild(u);},true);window.addEventListener('load',()=>{d=document.createElement('div');d.innerHTML=myJavaScriptInterface.toString()+'JAVASCRIPT works';document.body.appendChild(d);},false);</script><a href='https://html5test.co/'>https://html5test.co/</a><h1> this is html <h1> <h2> this is a h2</h2><img src='https://wald.alexmahr.de/images/rabe.avif'></html>";
|
String html = readFileFromAssets("index.html");
|
||||||
String encodedHtml = Base64.encodeToString(unencodedHtml.getBytes(),Base64.NO_PADDING);
|
myWebView.loadDataWithBaseURL(BASE_URI,html, "text/html", "UTF-8",null);
|
||||||
myWebView.loadDataWithBaseURL(BASE_URI,unencodedHtml, "text/html", "UTF-8",null);
|
|
||||||
//myWebView.loadData(encodedHtml, "text/html", "base64");
|
//myWebView.loadData(encodedHtml, "text/html", "base64");
|
||||||
// alternatively this could be to load a website
|
// alternatively this could be to load a website
|
||||||
//myWebView.loadUrl("https://alexmahr.de/ru");
|
//myWebView.loadUrl("https://alexmahr.de/ru");
|
||||||
setContentView(myWebView);
|
setContentView(myWebView);
|
||||||
new CountDownTimer(30000, 1000) {
|
new CountDownTimer(5000, 1000) {
|
||||||
public void onTick(long millisUntilFinished) {
|
public void onTick(long millisUntilFinished) {
|
||||||
myWebView.postWebMessage(new WebMessage("this is the message"+millisUntilFinished),Uri.parse(BASE_URI));
|
try{
|
||||||
|
JSONObject MyJSONObject = new JSONObject("{\"json\":[1,2,3],\"something\":\"test\"}");
|
||||||
|
myWebView.postWebMessage(new WebMessage("this is the message"+millisUntilFinished+ " " + MyJSONObject.get("something")),Uri.parse(BASE_URI));
|
||||||
|
} catch( Exception e) { }
|
||||||
// mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
|
// mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
|
||||||
// myWebView.evaluateJavascript("document.body.innerHTML='SUP "+millisUntilFinished+" all is lost';",null);
|
// myWebView.evaluateJavascript("document.body.innerHTML='SUP "+millisUntilFinished+" all is lost';",null);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue