根据语言在 webview 中加载本地 HTML 文件,如果找不到文件则使用默认值
Load local HTML file in webview base on language, use default if file not found
我正在创建一个网络视图,它将根据在应用程序上选择的语言加载本地 html 文件。我创建它的方法是创建几个具有不同语言代码 "en, ms, cn, fr, etc..." 的文件夹,然后根据 getlanguage 更改 url 基础。 binding.wvAboutUs.loadUrl("file:///android_asset/htmls/" + language + "/About_Us.html");
结果,如果 getLanguage = en,那么 url 将 b "file:///android_asset/htmls/en/About_Us.html" 当前对我有效。
但是,在某些情况下,htmls 文件可能不适用于某些语言(我不想将 "default" 文件放入该语言文件夹)。
我可以执行检查的任何想法 - 如果 url 为空,则加载默认文件。在加载默认页面之前应该检查其他语言的文件是否存在(en html 文件)。
例如 file:///android_asset/htmls/fr/About_Us.html 找不到文件然后加载默认文件:///android_asset/htmls/en/About_Us.html.
您可以执行以下操作使其正常工作
AssetManager mg = getResources().getAssets();
InputStream is = null;
try {
is = mg.open("htmls/fr/About_Us.html");
//File exists so do something with it
binding.wvAboutUs.loadUrl("file:///android_asset/htmls/fr/About_Us.html");
} catch (IOException ex) {
//file does not exist
binding.wvAboutUs.loadUrl("file:///android_asset/htmls/en/About_Us.html");
} finally {
//must close the stream
if (is != null) {
is.close();
}
}
我正在创建一个网络视图,它将根据在应用程序上选择的语言加载本地 html 文件。我创建它的方法是创建几个具有不同语言代码 "en, ms, cn, fr, etc..." 的文件夹,然后根据 getlanguage 更改 url 基础。 binding.wvAboutUs.loadUrl("file:///android_asset/htmls/" + language + "/About_Us.html");
结果,如果 getLanguage = en,那么 url 将 b "file:///android_asset/htmls/en/About_Us.html" 当前对我有效。
但是,在某些情况下,htmls 文件可能不适用于某些语言(我不想将 "default" 文件放入该语言文件夹)。
我可以执行检查的任何想法 - 如果 url 为空,则加载默认文件。在加载默认页面之前应该检查其他语言的文件是否存在(en html 文件)。
例如 file:///android_asset/htmls/fr/About_Us.html 找不到文件然后加载默认文件:///android_asset/htmls/en/About_Us.html.
您可以执行以下操作使其正常工作
AssetManager mg = getResources().getAssets();
InputStream is = null;
try {
is = mg.open("htmls/fr/About_Us.html");
//File exists so do something with it
binding.wvAboutUs.loadUrl("file:///android_asset/htmls/fr/About_Us.html");
} catch (IOException ex) {
//file does not exist
binding.wvAboutUs.loadUrl("file:///android_asset/htmls/en/About_Us.html");
} finally {
//must close the stream
if (is != null) {
is.close();
}
}