我正在创建一个 webview,它将根据在应用程序上选择的语言加载本地 html 文件。我创建它的方法是创建几个具有不同语言代码“en、ms、cn、fr 等...”的文件夹,然后根据 getlanguage 更改 url base。 binding.wvAboutUs.loadUrl("file:///android_asset/htmls/"+ language + "/About_Us.html");
结果,如果 getLanguage = en,则 url 将是 "file :///android_asset/htmls/en/About_Us.html”,目前对我有用。
但是,在某些情况下,某些语言可能无法使用 htmls 文件(而且我不想将“默认”文件放入该语言文件夹)。
我可以执行检查的任何想法 - 如果 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();
}
}
关于android - 基于语言在 webview 中加载本地 HTML 文件,如果找不到文件则使用默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50055182/