Lors du développement avec gomobile pour Android. Comment puis-je inclure des actifs (html, js, images) à l'intérieur du fichier apk ? J'ai un serveur web qui fonctionne à l'intérieur de l'apk ainsi qu'avec go run, mais lorsqu'il est empaqueté à l'intérieur de l'apk sur le téléphone, le service ne peut pas trouver ses actifs/fichiers statiques.
Réponse
Trop de publicités?Vous devez placer vos actifs dans un répertoire appelé "assets".
Voir cet exemple :
https://github.com/udhos/fugo/tree/master/demo/invader/assets
Vous pouvez alors utiliser le paquet golang.org/x/mobile/asset pour charger la ressource souhaitée :
import "golang.org/x/mobile/asset"
f, err := asset.Open("image.png")
Exemple de code tiré de 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
}