This is very interesting question. There seems no way to present this without the PassKit(Or even with passkit the screen will still go off...) I think PassKit Controller has some functions when you focus the QR code it doesn't go to sleep...
reading the watchkit reference in here , you need to implement presentation of the passkitController.
Because right now you cannot tell apple watch to resign sleep, it is agains human guidelines + it would really be energy-consuming solution. Instead, apple handles for you with PassKitController instance. So on watchkit, you do this:
let pass = PKPass(data: /*There goes your data*/, error: nil)
presentAddPassesController(withPasses: [pass]) {
// Do smth on completion
}
You definitely should try to inform user and give him access to export the pkpass to wallet...
Resources used:
https://github.com/TwoRingSoft/pkpassgenerator
For generating custom passkit object
This could help you as well:
https://www.natashatherobot.com/url-apple-wallet-passkit-pass/?utm_campaign=This%2BWeek%2Bin%2BSwift&utm_medium=email&utm_source=This_Week_in_Swift_138