elc*_*uco 4 html5 android native
我正在编写一个Android"web"应用程序(我不会将APP上传到Web,但在应用程序资源中设置HTML + JS).这意味着,GUI将是HTML5,我将使用另一个"本机"线程从麦克风中读取,并希望将"解析后的文本"发送到HTML5/JS代码.
这可能吗?在Android代码中,我看到如何从JS调用本机代码(我想要相反).
是的,Android实际上就是这样.
我发布了一个随机示例应用程序中的示例代码,但是这应该可以帮到您.
让我们首先假设您必须为webview控件类设置全局变量:
String name = "John";
String lastName = "Doe";
Run Code Online (Sandbox Code Playgroud)
在控制webview的Android类中(在onCreate()设置webview 期间或之时):
webView.addJavascriptInterface(new JavaScriptInterface(), "android")
Run Code Online (Sandbox Code Playgroud)
webview控件类的内部类:
/**
* Sets up the interface for getting access to Latitude and Longitude data
* from device
**/
private class JavaScriptInterface {
public String getName() {
return name;
}
public String getLastName() {
return lastName;
}
public void onJavascriptButtonPushed(String text) {
Toast.makeText(WebViewControllingClass.this, "The text of the pressed button is: "+text,Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
这是Android方面,现在通过Javascript使用它:
要通过JavaScript获取名称和姓氏:
if (window.android){
name = window.android.getName();
lastName = window.android.getLastName();
}
Run Code Online (Sandbox Code Playgroud)
如果你想提高吐司,设置一个javascript,其功能将是:
if (window.android){
window.android.onJavascriptButtonPushed("Hello");
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我没试过这个,但搜索产生了这个,尝试一下,它应该工作.
如果你想在另一个方向使用它:
JS:
function testEcho(message){
window.JSInterface.doEchoTest(message);
}
Run Code Online (Sandbox Code Playgroud)
安卓:
myWebView.loadUrl("javascript:testEcho('Hello World!')");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8582 次 |
| 最近记录: |