我的环境是webview,我想从Java中调用Angular的函数,所以我必须找出该函数。我该怎么办?
最佳答案
为了获取JavaScript函数的返回值,您需要使用evaluateJavascript方法:
webView.evaluateJavascript("javascript:myTestFunction();", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
// Do what you want with the return value
}
});
1) 从 Angular2+ 应用程序调用 Java 应用程序的方法:-
假设,JavaFunction.SomeJavaMethod()
在 Java 应用程序中定义,
.ts
let data = {
'key' : 2
}
JavaFunction.SomeJavaMethod(data);// call from angular
2) 从 webview/JavaApplication 调用 Angular 方法:-
index.html
<body>
<app-root></app-root>
<script type="text/javascript">
// data send from webview java app...call from java app
function updateFromJAVAapp(data) {
window['componentRef'].zone.run(() => {
window['componentRef'].component.updateFromMyJavaApp(data);
});
}
</script>
</body>
.ts
constructor(
private zone: NgZone
) {
window['componentRef'] = {
zone: this.zone,
componentFn: (value) => this.updateFromMyJavaApp(value),
component: this
};
}
updateFromMyJavaApp(data) {
console.log( JSON.stringify(data)); <=== data passed from java app webview
}
引用链接:-
https://www.tanelikorri.com/tutorial/android/communication-between-application-and-webview/
http://shripalsoni.com/blog/nativescript-webview-native-bi-directional-communication/
关于angular - 如何在webview上调用angular8组件的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56980723/