2017-11-20 22 views
1

WebGl 또는 CCS3D가있는 사이트를 여는 webview가 있습니다. 이 사이트에는 자이로 스코프가 포함 된 버튼이 있습니다.자이로 스코프 사용

크롬을 통해이 사이트로 이동하여이 버튼을 클릭하면 자이로 스코프가 켜집니다. android app에서 webview를 통해 사이트를 실행하는 경우 자이로 버튼을 클릭하면 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);*/ 


    } 

는 PLS, 저를 지원합니다.

답변

0

저는 webview가 자이로 스코프를 지원하지 않는다고 생각합니다. 기본 Webview를 사용하는 대신 을 사용할 수 있습니다. XWalkView 이것은 자이로 스코프를 지원합니다. 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"/> 

이 문서가 문제를 해결하는 것입니다. 모든 최고 !!!

+0

고마워, 그것은 나를 위해 작동합니다. 하지만 저는 아주 큰 apk을 가지고 있습니다, 왜? 첫 번째 크기는 1,5MB이고이 라이브러리의 apk는 50MB입니다. – shcherbuk

+0

라이브러리 크기는 약 45MB입니다. 2 개의 APK를 생성 할 수 있으며 크기는 각각 20-20MB로 나뉩니다. Google Play 스토어는 어떤 APK가 어떤 기기에 표시 될 것인지를 자동으로 관리합니다. 자세한 내용은이 [link] (https://github.com/yaroslav-v/crosswalk-embedded)에서 확인할 수 있습니다. – Arpit