

WebGLを利用したWebVRフレームワーク「a-frame」を利用したwebページ、  
androidのchromeアプリではなく、webviewを利用してアプリ上に表示しようと考えています。

試しに、a-frameの公式サイトを表示しようと、下記のような形で実装をしてみたのですが、画面が真っ白なままで、何も表示されません。

[code]

    private WebView m_WebView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.activity_main);
    
    
        m_WebView = (WebView)findViewById(R.id.vr_webView);
    
        m_WebView.getSettings().setJavaScriptEnabled(true);
        m_WebView.getSettings().setAllowFileAccessFromFileURLs(true);
        m_WebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
    
        m_WebView.setWebChromeClient(new WebChromeClient());
        m_WebView.setWebViewClient(new WebViewClient());
    
        m_WebView.loadUrl("https://aframe.io");
    }
    
[/code]

検証に使った端末は  
・Xperia X Performance (Android 7.0)  
・Galaxy S6 Edge (Android 6.0.1)  
です。

どなたか解決策をご存知の方はいらっしゃいますでしょうか？  
※アプリを実行時に下記のログが表示されていました。

[code]

    I/chromium: [INFO:CONSOLE(137)] "No DPDB device match.", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    I/chromium: [INFO:CONSOLE(137)] "Failed to recalculate device parameters.", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    I/chromium: [INFO:CONSOLE(137)] "Using fallback Android device measurements.", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    I/chromium: [INFO:CONSOLE(139)] "Failed to load viewer profile: %s", source: https://aframe.io/aframe/dist/aframe-master.min.js (139)
    I/chromium: [INFO:CONSOLE(137)] "Uncaught TypeError: Cannot read property 'distortionCoefficients' of undefined", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    I/chromium: [INFO:CONSOLE(107)] "THREE.WebGLRenderer", source: https://aframe.io/aframe/dist/aframe-master.min.js (107)
    I/chromium: [INFO:CONSOLE(137)] "No DPDB device match.", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    I/chromium: [INFO:CONSOLE(137)] "Failed to recalculate device parameters.", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    I/chromium: [INFO:CONSOLE(137)] "Using fallback Android device measurements.", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    I/chromium: [INFO:CONSOLE(139)] "Failed to load viewer profile: %s", source: https://aframe.io/aframe/dist/aframe-master.min.js (139)
    I/chromium: [INFO:CONSOLE(137)] "Uncaught TypeError: Cannot read property 'distortionCoefficients' of undefined", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    I/chromium: [INFO:CONSOLE(137)] "Error loading online DPDB!", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    I/chromium: [INFO:CONSOLE(137)] "Error loading online DPDB!", source: https://aframe.io/aframe/dist/aframe-master.min.js (137)
    
[/code]


CC BY-SA 3.0
2017-05-25T03:16:13.287
34999
2020-07-12T08:07:00.717
23358
question
android java webview
a-frame をandroidのwebviewで表示したい


WebViewの代わりにCrosswalkを使用すると簡単に動かせました。  
Crosswalkの導入はこちらを参考に  
<http://qiita.com/niusounds/items/ecd51016cda91c5c3a5e>


CC BY-SA 3.0
2017-08-09T09:24:17.423
37057
2017-08-09T09:24:17.423
450
34999
answer


AndroidManifest.xml に下記のパーミッションのエントリーはありますか？

[code]

    <uses-permission android:name="android.permission.INTERNET" />
    
[/code]

下記のコードで特に問題なく表示されました（Xperia Ace; Android 9）：

[code]

    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            WebView webView = new WebView(this);
    
            webView.getSettings().setJavaScriptEnabled(true);
            webView.getSettings().setAllowFileAccessFromFileURLs(true);
            webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
    
            webView.setWebChromeClient(new WebChromeClient());
            webView.setWebViewClient(new WebViewClient());
    
            webView.loadUrl("https://aframe.io");
    
            setContentView(webView);
        }
    }
    
[/code]

[![スクリーンショット](https://i.stack.imgur.com/DIrKel.png)](https://i.stack.imgur.com/DIrKel.png)


CC BY-SA 4.0
2020-05-30T08:25:23.403
67142
2020-05-30T08:25:23.403
7290
34999
answer