Maybe you could define a layer that is active when users are logged in from PC, and then another for when they're visiting from a tablet? Publish the widget to both layers, but the rules of the layers would ensure that they are never both active at the same
time. I haven't really used widgets or created custom rules for them so I'm not sure if there's any reason that wouldn't work.
Somewhat related, I have programmatically created shapes and pushed them to specific zones:
You could adapt this to check for the condition you want (PC/tablet) and push to the appropriate zone.