代码之家  ›  专栏  ›  技术社区  ›  Shawn.Y

基于语言在webview中加载本地HTML文件,如果找不到文件,请使用默认值

  •  1
  • Shawn.Y  · 技术社区  · 6 年前

    我正在创建一个webview,它将根据应用程序上选择的语言加载本地html文件。我创建它的方法是创建几个不同语言代码为“en、ms、cn、fr等”的文件夹然后根据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文件可能不适用于某些语言(我不想将“默认”文件放入该语言文件夹)。

    如果url为空,则加载默认文件。在加载默认页面之前,应检查是否存在其他语言的文件,以防不存在(en html文件)。

    E、 g级file:///android_asset/htmls/fr/About_Us.html找不到文件,然后加载默认文件file:///android_asset/htmls/en/About_Us.html.

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sagar    6 年前

    您可以执行以下操作以使其正常工作

    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();
      }
    
    }