When using plugin, RegisterLocalWindowShareEventListener should only be called once in the lifetime of the application. The onAdded and onRemoved events fire so your app then keeps track of available window shares. When a window share is to be initiated, SelectLocalWindowShare is to be called.
When using WebRTC, RegisterLocalWindowShareEventListener should only be called when the app wants to begin sharing. At that point, a pop-up prompts the user to select the window to share. After a window is selected, an onAdded event fires in the listener and SelectLocalWindowShare should be called. At this point, UnregisterRemoteCameraEventListener should be called. Each successive share should repeatedly go through this process.