gomobile如何在apk中嵌入资源
gomobile how to embed assets in apk
使用 gomobile 开发 Android 时。如何在 apk 文件中包含资产(html、js、图像)?我在 apk 中有一个 Web 服务器 运行ning,它在 apk 中以及 go 运行 中工作,但是当打包在 phone 上的 apk 中时,服务无法找到它 assets/static 个文件。
您必须将资产放在名为 '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
}
使用 gomobile 开发 Android 时。如何在 apk 文件中包含资产(html、js、图像)?我在 apk 中有一个 Web 服务器 运行ning,它在 apk 中以及 go 运行 中工作,但是当打包在 phone 上的 apk 中时,服务无法找到它 assets/static 个文件。
您必须将资产放在名为 '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
}