Web 视图将值传递给 SAPUI5 控制器



我想通过渲染网站的 android webview 从我的一个 sapui5 控制器调用一个方法(并传递参数(。我一直在使用:

webview.loadUrl("javascript:myJavaScriptFunc('" + argumentPassingIn + "')"); 

之前,但这里的问题是我的方法必须在 HTML 中,如下所示:

<body>
<h1>Body</h1>
<script>
myJavaScriptFunc(val){
//Do something with val
}
</script>
</body>

就我而言,我想从我的 SAPUI5 Web 应用程序的特定控制器调用它。如何定位控制器和该特定方法?有人面临这样的奇迹吗?

控制器的所有方法都不在全局(即window( 范围。因此,我会使用事件总线。

假设您的控制器已定义了一个方法myTestFunction.在控制器的onInit中执行

var oEventBus = sap.ui.getCore().getEventBus();
oEventBus.subscribe("AndroidWebView", "AndroidWebEvent", this.myTestFunction, this);

然后你可以在安卓网页视图中调用以下代码

webview.loadUrl("javascript:sap.ui.getCore().getEventBus().publish('AndroidWebView', 'AndroidWebEvent', { arg: '" + argumentPassingIn + "' })"); 

最新更新