#android #webview #webviewclient
#Android #webview #webviewclient
Вопрос:
Я внедрил webviewclient в свой код для доступа к некоторому html-контенту в моем коде Android. Я задал условие в методе shouldInterceptRequest () для получения вызова файла mp3, чтобы я мог изменить его во время выполнения. в первый день он был успешно реализован, но теперь метод никогда не вызывает эти mp3-файлы. я еще не изменил код, но все еще не понимаю, где я делаю неправильно
Мой Html-файл пока хранится локально, я сохранил его вручную, но он будет загружен с php-сервера. Мой реализованный клиент WebView приведен ниже
myWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
MSLogger.msLogD("initSleave", "WebViewClient: " url "nview: " view);
view.loadUrl(url);
return true;
}
@Nullable
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String request) {
if (request.contains(".mp3")) {
if (prefs.getLanguage().equalsIgnoreCase("Hi")) {
try {
request= request.replace(".mp3", "_hindi.mp3");
request=request.replace("file://","");
return new WebResourceResponse("audio/mp3", "UTF-8", new FileInputStream(request));
} catch (Exception e) {
e.printStackTrace();
}
}
}
return super.shouldInterceptRequest(view, request);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.d("RequestView", "----->" request);
return super.shouldOverrideUrlLoading(view, request);
}
@Nullable
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
Log.d("RequestView", "----->" request);
return super.shouldInterceptRequest(view, request);
}
});
Я хочу, когда webclient вызовет файл ресурсов mp3, упомянутый в моем содержимом Sleave (Html). Но теперь он вызывает только все png, ttf, css и XML-файлы
Ответ №1:
Параметр типа MIME для .mp3 следует изменить на audio / mpeg
=O