We've been using a 'trick' to support this of returning an empty array of 'supportedFamilies' when we want to conditionally hide widgets. Seems to work, but with one huge caveat... it seems like the system only reads this value once, then caches it, meaning if something changes while the app is running, the widget won't re-appear/disappear until they restart their phone (or update the app.)