[{"data":1,"prerenderedAt":321},["ShallowReactive",2],{"/docs/base/api/phone-and-tablet":3,"/docs/base/api/phone-and-tablet-surround":309,"/docs/base/api/phone-and-tablet-implemented-suggestions":320},{"id":4,"title":5,"body":6,"description":299,"extension":300,"head":301,"implementedSuggestions":301,"meta":302,"navigation":303,"path":304,"schemaOrg":301,"seo":305,"sitemap":306,"stem":307,"__hash__":308},"docs/1.docs/base/5.api/5.phone-and-tablet.md","Phone and Tablet Providers",{"type":7,"value":8,"toc":289},"minimark",[9,14,23,37,40,44,138,142,173,176,180,242,246,252,271],[10,11,13],"h2",{"id":12},"who-is-this-page-for","Who is this page for?",[15,16,17,18,22],"p",{},"This is an ",[19,20,21],"strong",{},"optional developer reference"," for integrating your own scripts with the configured phone or external tablet. You do not need to call these exports to install or use Sky job resources.",[15,24,25,26,31,32,36],{},"If you use an external phone or tablet, select its integration in Sky Base's configuration and follow ",[27,28,30],"a",{"href":29},"/docs/base/introduction","Base setup",". The Sky job resources use the shared adapters themselves. For example, ",[33,34,35],"code",{},"OpenCustomPhoneApp"," is useful when your own script needs to open an external phone app; it is not an installation step.",[15,38,39],{},"These exports call the configured adapter. Provider support and result payloads depend on that adapter; registration does not install or start the external phone/tablet resource.",[10,41,43],{"id":42},"phone-client","Phone — client",[45,46,47,60],"table",{},[48,49,50],"thead",{},[51,52,53,57],"tr",{},[54,55,56],"th",{},"Export",[54,58,59],{},"Purpose",[61,62,63,74,84,94,108,118,128],"tbody",{},[51,64,65,71],{},[66,67,68],"td",{},[33,69,70],{},"RegisterCustomPhoneApp(app)",[66,72,73],{},"Register an app using the active provider's supported app contract",[51,75,76,81],{},[66,77,78],{},[33,79,80],{},"SendCustomPhoneAppMessage(identifier, data)",[66,82,83],{},"Send data to the app",[51,85,86,91],{},[66,87,88],{},[33,89,90],{},"SendPhoneAppNotification(data)",[66,92,93],{},"Send a local phone-app notification",[51,95,96,101],{},[66,97,98],{},[33,99,100],{},"GetPhoneNumber()",[66,102,103,104,107],{},"Read the local number, or ",[33,105,106],{},"nil"," if unavailable",[51,109,110,115],{},[66,111,112],{},[33,113,114],{},"RegisterCustomPhoneNumber(number, handler)",[66,116,117],{},"Register a dialable number where supported",[51,119,120,125],{},[66,121,122],{},[33,123,124],{},"RemoveCustomPhoneNumber(number)",[66,126,127],{},"Remove an owned dialable number where supported",[51,129,130,135],{},[66,131,132],{},[33,133,134],{},"OpenCustomPhoneApp(identifier, data?)",[66,136,137],{},"Open an app where supported",[10,139,141],{"id":140},"phone-server","Phone — server",[45,143,144,152],{},[48,145,146],{},[51,147,148,150],{},[54,149,56],{},[54,151,59],{},[61,153,154,164],{},[51,155,156,161],{},[66,157,158],{},[33,159,160],{},"GetPhoneNumber(source)",[66,162,163],{},"Read the selected player's number through the active provider",[51,165,166,170],{},[66,167,168],{},[33,169,90],{},[66,171,172],{},"Send a provider notification using its supported payload",[15,174,175],{},"Do not reuse the client notification payload on the server without checking the selected provider's targeting fields.",[10,177,179],{"id":178},"tablet-client","Tablet — client",[45,181,182,190],{},[48,183,184],{},[51,185,186,188],{},[54,187,56],{},[54,189,59],{},[61,191,192,202,212,222,232],{},[51,193,194,199],{},[66,195,196],{},[33,197,198],{},"RegisterCustomTabletApp(app)",[66,200,201],{},"Register an external-tablet app",[51,203,204,209],{},[66,205,206],{},[33,207,208],{},"RemoveCustomTabletApp(identifier)",[66,210,211],{},"Remove an owned app where supported",[51,213,214,219],{},[66,215,216],{},[33,217,218],{},"SendCustomTabletAppMessage(identifier, event, data)",[66,220,221],{},"Send an app event",[51,223,224,229],{},[66,225,226],{},[33,227,228],{},"SendTabletAppNotification(data)",[66,230,231],{},"Send a local tablet-app notification",[51,233,234,239],{},[66,235,236],{},[33,237,238],{},"CloseExternalTablet()",[66,240,241],{},"Request closure where supported",[10,243,245],{"id":244},"tablet-server","Tablet — server",[15,247,248,251],{},[33,249,250],{},"SendTabletAppNotification(data, source?)"," sends a notification to the selected player through the active adapter.",[15,253,254,255,258,259,262,263,266,267,270],{},"The ",[33,256,257],{},"sd"," tablet adapter uses ",[33,260,261],{},"sd-phone","'s shared app registry with ",[33,264,265],{},"devices = \"tablet\"",". Its close operation returns ",[33,268,269],{},"false, \"unsupported_provider_api\""," because that provider has no supported close API. Other adapters have their own capabilities.",[15,272,273,274,278,279,283,284,288],{},"For Sky's internal job tablet and apps, start with ",[27,275,277],{"href":276},"/docs/base/jobs-base/introduction","Jobs Base",", ",[27,280,282],{"href":281},"/docs/base/jobs-base/features/emergency-dispatch","Emergency Dispatch"," and ",[27,285,287],{"href":286},"/docs/base/jobs-base/features/tablet-and-personalization","tablet personalization",".",{"title":290,"searchDepth":291,"depth":292,"links":293},"",1,2,[294,295,296,297,298],{"id":12,"depth":292,"text":13},{"id":42,"depth":292,"text":43},{"id":140,"depth":292,"text":141},{"id":178,"depth":292,"text":179},{"id":244,"depth":292,"text":245},"Integrate custom apps through Base's active phone and tablet adapters.","md",null,{},true,"/docs/base/api/phone-and-tablet",{"title":5,"description":299},{"loc":304},"1.docs/base/5.api/5.phone-and-tablet","FJlk1_9tveuJhnoAD05-KJn8Jschk0cxAbuoEj2GVF4",[310,315],{"title":311,"path":312,"stem":313,"description":314,"children":-1},"Inventory","/docs/base/api/inventory","1.docs/base/5.api/4.inventory","Read or remove player inventory items through Base's configured framework bridge.",{"title":316,"path":317,"stem":318,"description":319,"children":-1},"Internal Banking","/docs/base/api/banking","1.docs/base/5.api/6.banking","Server exports for the internal Sky society banking backend.",[],1791814174447]