Chrome と Firefox で WebVR を使用して krpano を実行すると、段ボールのボタンが表示され、有効になります。しかし、Android の WebView 内に埋め込んで実行すると、段ボールのボタンが表示されません。
しかし、その後、WebView を使用してコンパイルした apk が、他のデバイスに段ボールのボタンを表示していることがわかりました。AndroidフォンのChromeとFirefox Mobileでは動作することがわかっていますが、WebView実装を使用している場合は動作しないため、携帯電話で同じ動作を強制するにはどうすればよいですか?
どのような構成を設定する必要がありますか? または、実際に実行できる場合でも、一部のデバイスまたはデバイスの裁量だけでなく、サポートできるすべての Android デバイスで WebVR が有効になるようにシミュレートしますか?
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、または他のデバイスによる他の実装でのみ成功すると推測しています。