是否可以使用html5启动移动传感器,但只能使用android webview?

时间:2016-09-16 15:06:37

标签: html5 webview android-webview

我的意思是没有cordova或其他框架。我非常确定我需要编写Java代码并通过android webview以某种方式将其链接到html5。 如果可能的话,可以举一个例子来连接相机或其他传感器。

2 个答案:

答案 0 :(得分:1)

某些传感器具有JavaScript API,例如geolocationorientation (gyroscope)battery。要访问相机,您可以使用MediaDevices.getUserMedia,但是,这仍处于试验阶段,并非所有Android设备都不支持。有关更多信息,请参阅this link

答案 1 :(得分:0)

查看JavascriptInterface

https://developer.android.com/reference/android/webkit/WebView.html https://developer.android.com/guide/webapps/webview.html

具体来说,addJavascriptInterface(java.lang.Object,java.lang.String))

@JavascriptInterface
class JsInterface {
  public void startCamera() { ... }
}

WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JsInterface(), "androidInterface");

基本上,添加JavascriptInterface,并在Web视图上启用javascript。然后在您的javascript中,您可以检测界面是否存在如下:

if ("undefined" != typeof androidInterface) {
    androidInterface.startCamera();
}

现在,在startCamera的Java代码中,您可以执行任何您需要完成的本机操作。