Edit: FileProvider is included as an internal library now. After investigating several issues with the current FileProvider code that you can find in the forum, I decided to make some improvements and implement it in a class. Starting from Android 7 (API 24) you cannot directly share file uris...
like this?
File.Copy(File.DirAssets, "page.html", File.Dirinternal, "page.html")
is it mandatory to copy it? can't I ask the default browser to read the file directly from dirassets?
No, the fileprovider lib code that I linked to has a routine that will return a "Shared" directory for you to use. That is the directory that you need to copy the file into.
Yes, it is mandatory that you use this shared directory and this file-provider method if you want an external program (the device's default browser) to be able to access it.