Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Webview将值传递给SAPUI5控制器_Java_Android_Webview_Sapui5 - Fatal编程技术网

Java Webview将值传递给SAPUI5控制器

Java Webview将值传递给SAPUI5控制器,java,android,webview,sapui5,Java,Android,Webview,Sapui5,我想通过呈现站点的android webview从我的一个sapui5控制器调用一个方法(并传递参数)。我一直在使用: webview.loadUrl("javascript:myJavaScriptFunc('" + argumentPassingIn + "')"); 之前,但这里的问题是,我的方法必须是HTML格式,如下所示: <body> <h1>Body</h1> <script> myJavaScriptFunc(v

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

webview.loadUrl("javascript:myJavaScriptFunc('" + argumentPassingIn + "')"); 
之前,但这里的问题是,我的方法必须是HTML格式,如下所示:

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

身体
myJavaScriptFunc(val){
//对瓦尔做点什么
}

在我的例子中,我想从SAPUI5 web应用程序的特定控制器调用它。我如何以控制器和特定方法为目标?有人面临这样的奇迹吗?

控制器的任何方法都不在全局(即
窗口
)范围内。因此,我会使用

假设您的控制器定义了一个方法
myTestFunction
。在控制器的
onInit
中执行以下操作

var oEventBus = sap.ui.getCore().getEventBus();
oEventBus.subscribe("AndroidWebView", "AndroidWebEvent", this.myTestFunction, this);
然后,您可以在android webview中调用以下代码

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

@标记我的应用程序地址“webview.loadUrl”(“javascript:sap.ui.getCore().getEventBus().publish('AndroidWebView','AndroidWebEvent',{arg:'“+argumentPassingIn+”})”);“它将尝试在哪个IP上加载?当前网页的IP?”?我假设webview.loadUrl的作用与打开chrome开发工具并在控制台中执行JS时相同。它应该在与应用程序相同的上下文中运行。