javascriptinterface in activity itself
This commit is contained in:
parent
51734be9f8
commit
f1dcecf971
2 changed files with 11 additions and 15 deletions
|
@ -31,14 +31,15 @@ build : ./bin/example.app.apk
|
||||||
|
|
||||||
#./bin/classes.dex : ./obj/app/example/ExampleApp.class ./obj/app/example/ExampleApp$$1.class ./obj/app/example/MyJavascriptInterface.class
|
#./bin/classes.dex : ./obj/app/example/ExampleApp.class ./obj/app/example/ExampleApp$$1.class ./obj/app/example/MyJavascriptInterface.class
|
||||||
#./bin/classes.dex : ./obj/app/example/ExampleApp.class ./obj/app/example/MyJavascriptInterface.class ./obj/app/example/MyRunnable.class
|
#./bin/classes.dex : ./obj/app/example/ExampleApp.class ./obj/app/example/MyJavascriptInterface.class ./obj/app/example/MyRunnable.class
|
||||||
./bin/classes.dex : ./obj/app/example/ExampleApp.class ./obj/app/example/MyJavascriptInterface.class ./obj/app/example/MyRunnable.class
|
#./bin/classes.dex : ./obj/app/example/ExampleApp.class ./obj/app/example/MyJavascriptInterface.class ./obj/app/example/MyRunnable.class
|
||||||
|
./bin/classes.dex : ./obj/app/example/ExampleApp.class
|
||||||
$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/d8 $^ --lib $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar --output bin
|
$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/d8 $^ --lib $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar --output bin
|
||||||
|
|
||||||
./src/app/example/R.java : $(shell find ./res -type f)
|
./src/app/example/R.java : $(shell find ./res -type f)
|
||||||
$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -f -m -S ./res -J ./src -M ./AndroidManifest.xml \
|
$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -f -m -S ./res -J ./src -M ./AndroidManifest.xml \
|
||||||
-I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar
|
-I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar
|
||||||
|
|
||||||
./obj/app/example/ExampleApp.class : ./src/app/example/ExampleApp.java ./src/app/example/R.java ./src/app/example/MyJavascriptInterface.java
|
./obj/app/example/ExampleApp.class : ./src/app/example/ExampleApp.java ./src/app/example/R.java
|
||||||
javac -d ./obj -classpath $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -sourcepath ./src $<
|
javac -d ./obj -classpath $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -sourcepath ./src $<
|
||||||
|
|
||||||
./ToyKey.keystore :
|
./ToyKey.keystore :
|
||||||
|
|
|
@ -23,7 +23,7 @@ public class ExampleApp extends Activity {
|
||||||
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
// we create the webview (at least on the android 14 that is a webview that features avif + websockets etc....)
|
// we create the webview (at least on the android 14 that is a webview that features avif + websockets etc....)
|
||||||
WebView myWebView = new WebView(this);//activityContext);
|
WebView myWebView = new WebView(this);//activityContext);
|
||||||
MyJavascriptInterface myJavaScriptInterface = new MyJavascriptInterface(this,myWebView);
|
// MyJavascriptInterface myJavaScriptInterface = new MyJavascriptInterface(this,myWebView);
|
||||||
// we create a webview (there is also setwebviewclient-vs-setwebchromeclient
|
// we create a webview (there is also setwebviewclient-vs-setwebchromeclient
|
||||||
WebViewClient myWebViewClient= new WebViewClient();
|
WebViewClient myWebViewClient= new WebViewClient();
|
||||||
myWebView.setWebViewClient(myWebViewClient);
|
myWebView.setWebViewClient(myWebViewClient);
|
||||||
|
@ -32,7 +32,7 @@ public class ExampleApp extends Activity {
|
||||||
myWebSettings.setBuiltInZoomControls(true);
|
myWebSettings.setBuiltInZoomControls(true);
|
||||||
myWebSettings.setDisplayZoomControls(false);
|
myWebSettings.setDisplayZoomControls(false);
|
||||||
myWebSettings.setJavaScriptEnabled(true);
|
myWebSettings.setJavaScriptEnabled(true);
|
||||||
myWebView.addJavascriptInterface(myJavaScriptInterface, "myJavaScriptInterface");
|
myWebView.addJavascriptInterface(this, "myJavaScriptInterface");
|
||||||
// providing a webpage inline
|
// providing a webpage inline
|
||||||
String unencodedHtml = "<!DOCTYPE html><html><script> 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 unencodedHtml = "<!DOCTYPE html><html><script> 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 encodedHtml = Base64.encodeToString(unencodedHtml.getBytes(),Base64.NO_PADDING);
|
String encodedHtml = Base64.encodeToString(unencodedHtml.getBytes(),Base64.NO_PADDING);
|
||||||
|
@ -40,17 +40,12 @@ public class ExampleApp extends Activity {
|
||||||
// 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 java.util.Timer().schedule( new MyRunnable(myWebView),2000);
|
|
||||||
// java.util.TimerTask() {
|
|
||||||
// @Override
|
|
||||||
// public void run() {
|
|
||||||
// this actually blocks all of the webview
|
|
||||||
try {
|
|
||||||
Thread.sleep(3000);
|
|
||||||
} catch (Exception e) { }
|
|
||||||
myWebView.evaluateJavascript("document.body.innerHTML='all is lost';",null);
|
myWebView.evaluateJavascript("document.body.innerHTML='all is lost';",null);
|
||||||
// // this code will be executed after 2 seconds
|
}
|
||||||
// }
|
@JavascriptInterface
|
||||||
// , 2000);
|
public String toString() {
|
||||||
|
// this.webview.evaluateJavascript("(setTimeout(()=>{document.body.innerHTML='all gone';},2000)()",null);
|
||||||
|
return "this is good";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue