3

有时我们只是想改变一些字符串。但是,我们必须重新编译和退出应用程序并上传到 Play 商店。用户也必须下载和更新。

我认为 Firebase 远程配置是一个有趣的解决方案。但似乎 remote-config 无法自行更新 string.xml。

有什么解决办法吗?

4

2 回答 2

2

我认为没有办法更新你的 string.xml 文件,但你可以通过你的 api 请求来实现这个功能。因此,这样您的每个字符串都将由 api 驱动,您可以随时更改。有一个名为proteus的框架。因此,借助此功能,您可以动态生成完整的布局。

于 2016-11-24T06:08:27.487 回答
0

正如公认的答案所述,没有官方的方法可以做到这一点,

但是,由于您想要一个 firebase 解决方案,因此这里有一个通用库,它只支持 Telereso,它还控制图像。

添加到 build.gradle

// At your root build.gradle
allprojects {
    repositories {
        // add JitPack repository
        maven { url 'https://jitpack.io' } 
        jcenter()
        google()
    }
}

// At your app build.gradle
implementation("io.telereso:telereso:1.0.1-alpha")

在里面

class MyApplication : Application() {
   override fun onCreate() {
      super.onCreate()
      Telereso.init(this)
   }
}

它通过将其添加到样式来支持开箱即用的全局更改字符串

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/style_color_primary</item>
    <item name="colorPrimaryDark">@color/style_color_primary_dark</item>
    <item name="colorAccent">@color/style_color_accent</item>
    <item name="colorControlHighlight">@color/fab_color_pressed</item>
    <item name="viewInflaterClass">io.telereso.android.RemoteViewInflater</item>
</style>

或者像这样的范围变化

var text = Telereso.getRemoteString(R.strings.title) // if remote not found, R.string.tile will be used
于 2021-10-17T00:18:48.973 回答