1

我有一个使用 WebGl 或 CCS3D 打开站点的 web 视图。在这个网站上有一个包含陀螺仪的按钮。

如果你通过 chrome 去这个站点并点击这个按钮,陀螺仪就会打开。如果您通过 android 应用程序中的 webview 运行该站点,那么当您单击按钮陀螺仪时,该站点不会像在 chrome 中那样旋转。

问题:如何在android上打开陀螺仪,这样当你按下陀螺仪按钮时,网站也像在chrome中一样旋转?

以下权限已连接:

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />
    <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true" />

代码:

public class SecondActivity extends AppCompatActivity  {
    WebView webView;
    final String ulr="http://sfer***.com/hodite/";
    SensorManager sensorManager;
    Sensor sensor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_second);
        webView=(WebView)findViewById(R.id.web);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setBuiltInZoomControls(true);
        webSettings.setDisplayZoomControls(false);
        webSettings.setSupportZoom(true);
        webSettings.setDefaultTextEncodingName("utf-8");
        webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        webSettings.setAppCacheEnabled(true);
        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        webSettings.setEnableSmoothTransition(true);
        //webView.setWebChromeClient(new WebChromeClient());
        webView.loadUrl(ulr);

        /*sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);*/


    }

支持我,请。

4

1 回答 1

0

我认为 webview 不支持陀螺仪。而不是使用默认的 Webview,你可以尝试使用XWalkView这将支持 Gyroscope。在 build.gradle 中添加以下代码

repositories {
//mavenLocal()
maven {
    url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'
}}

在依赖项中添加以下行

compile 'org.xwalk:xwalk_core_library:20.50.533.12'

添加你的布局文件:

<org.xwalk.core.XWalkView
    android:id="@+id/xwalkWebView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"/>

这将解决您的问题。一切顺利 !!。

于 2017-11-23T05:19:45.993 回答