3

使用适用于 Android 的 gomobile 进行开发时。如何在 apk 文件中包含资产(html、js、图像)?我有一个在 apk 内运行的 web 服务器,它在 apk 内以及 go run 内工作,但是当打包在手机上的 apk 内时,服务找不到它的资产/静态文件。

4

1 回答 1

4

您必须将您的资产放在一个名为“assets”的目录中。

看这个例子:

https://github.com/udhos/fugo/tree/master/demo/invader/assets

然后您可以使用包golang.org/x/mobile/asset来加载所需的资产:

import "golang.org/x/mobile/asset"

f, err := asset.Open("image.png")

取自https://github.com/udhos/fugo/blob/master/demo/invader/main.go的示例代码:

func loadFull(name string) ([]byte, error) {
    f, errOpen := asset.Open(name)
    if errOpen != nil {
        return nil, errOpen
    }
    defer f.Close()
    buf, errRead := ioutil.ReadAll(f)
    if errRead != nil {
        return nil, errRead
    }
    log.Printf("loaded: %s (%d bytes)", name, len(buf))
    return buf, nil
}
于 2018-03-22T00:16:00.973 回答