angular - 如何在webview上调用angular8组件的功能?

标签 angular

我的环境是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/

相关文章:

angular - 测试不返回任何值的方法(jasmine angular4)

javascript - 如何在每次页面更改时刷新组件

json - 如何以 Angular 4打印 Angular 对象

angular - ionic 格式输入元素 onblur

drop-down-menu - 禁用angular2中的选择

angular - react 形式 : Radio button selects both

javascript - 什么!在 Angular 语法中是什么意思?

angular - 在 Angular 4 中使用 lodash

Angular2 - 使用路由器导出名称时路由不起作用

Angular 5 : how can i use click event in item list?