如何使用krpano在WebView上启用WebVR?

时间:2015-10-21 11:31:07

标签: javascript android webview webvr krpano

我设法在Chrome和Firefox上使用WebVR运行krpano,并且可以看到并启用了纸板按钮。但是在运行它时,它嵌入在Android中的WebView中,它不会显示纸板按钮。

然而,我发现我用WebView编译的apk正在我的其他设备上显示纸板按钮。我如何在手机上强制执行相同的操作,因为我知道它在我的Android手机上的Chrome和Firefox Mobile中有效但在使用我的WebView实现时却没有?

我需要设置什么配置?或模拟以确保WebVR能够支持所有支持它的Android设备,而不仅仅是某些设备或设备可自行决定,即使它可以真正运行它?

static final String BASE = "http://app.imaginarydomain.com";
static final Pattern PATH_PATTERN = Pattern.compile(Pattern.quote(BASE) + "/(.*)");

...

WebSettings webSettings = webView.getSettings();
webSettings.setBlockNetworkLoads(false);
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new TestWebViewClient());
webView.loadUrl(BASE + "/tour.html");

...

class TestWebViewClient extends WebViewClient {
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
        Matcher matcher = PATH_PATTERN.matcher(url);
        if (matcher.matches()) {
            String asset = "sample-tour-cardboard/" + matcher.group(1);
            try {
                InputStream is = getAssets().open(asset);
                String extension = MimeTypeMap.getFileExtensionFromUrl(url);
                String type = "application/octet-stream";
                if (extension != null) {
                    type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
                }
                return new WebResourceResponse(type, "UTF-8", is);
            } catch (IOException e) {
                Log.e("ERROR!", "Asset loading error: " + asset, e);
            }
        }
        return null;
    }
}

我还尝试在krpano WebView插件中启用WebVR假模式。但它不起作用。

我猜测WebVR插件正在检查WebView的上下文中的内容,并且该检查仅在Chrome Mobile,Firefox Mobile或其他设备的其他实现上成功。

1 个答案:

答案 0 :(得分:3)

krpano使用的 WebVr插件需要WebGL ,仅在 Android L开发者预览之后才会在Android WebView中提供。 有关此限制的更多信息,请参见chrome的开发者页面:https://developer.chrome.com/multidevice/webview/overview
因此,纸板图标不会显示在Android WebView中。
如果您需要支持prelollipop设备,您可以使用XWalk项目中的 XWalkView 。 链接:https://crosswalk-project.org/documentation/embedding_crosswalk.html

要获得一些额外帮助,请点击我在krpano论坛上嵌入xwalk的讨论链接:http://krpano.com/forum/wbb/index.php?page=Thread&postID=61064