The way we have this working involves what @Reza Aghaei said plus a little more.
Set up your partial methods in your cross-platform class as @Reza Aghaei said but then also create public methods to access the private partial methods.
Yes, the documentation is wrong and within that documentation if you click on the Sample you will see it doesn't exist anymore.
This is what we have:
public partial class WakeLock
{
partial void PlatformAcquire();
partial void PlatformRelease();
public void Acquire() { this.PlatformAcquire(); }
public void Release() { this.PlatformRelease(); }
}