【问题标题】:Load local HTML file in webview base on language, use default if file not found根据语言在 webview 中加载本地 HTML 文件,如果找不到文件则使用默认值
【发布时间】:2018-04-27 04:19:55
【问题描述】:

我正在创建一个 webview,它将根据应用程序上选择的语言加载本地 html 文件。我创建它的方式是创建几个具有不同语言代码“en、ms、cn、fr 等...”的文件夹,然后根据 getlanguage 更改 url。 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。

【问题讨论】:

    标签: android localization android-webview


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      • 2014-01-19
      • 2014-02-28
      • 1970-01-01
      • 2022-06-25
      • 1970-01-01
      相关资源
      最近更新 更多