android webview显示本地html的国际化方法

简单讲一下需求来源。在app中显示一个最终用户许可协议(EULA)。这个许可协议是html格式的,存储在本地,而且是多语言的,也就是说:有多个html文件,文件名各不相同:

英文的是eula.htm,简体中文的是eula-zh-rCN.html。

这些文件都放在assets目录下。assets目录下的文件是一类特殊的资源,不会被编译和生成资源id。

在app中,用一个webview来装载许可协议文本,那么,问题演变为:根据不同的系统语言装载不同的eula文件,比如:英文系统时,在webview中显示eula.htm,简体中文时显示eula-zh-rCN.html。

webview装载一个本地assets目录下的文件的方法是这样的:

webView.loadUrl("file:///android_assets/file_name");

其实,不同系统语言下,只要装载不同的文件就行了(file_name不一样)。所以问题就解决了:把文件名作为String资源进行处理。具体的方法如下:

res/values目录下strings.xml文件加一行:

<string name="eula_file">eula.html</string>

res/values-zh-rCN目录(这个目录存储简体中文资源)下strings.xml文件加一行:

<string name="eula_file">eula-zh-rCN.html</string>

在webview中装载文件的代码是:

webView.loadUrl("file:///android_assets/"+getString(R.string.eula_file));

这样就行了,根据系统的语言显示不同的文件,如果没有对应的文件,则显示英文的。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值