0

我设法在 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 或其他设备的其他实现上成功。

4

1 回答 1

3

krpano 使用的WebVr 插件需要 WebGL,它仅在Android L Developer Preview之后才在 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

于 2015-12-15T11:00:20.693 回答