[{"data":1,"prerenderedAt":222},["ShallowReactive",2],{"navigation":3,"\u002Fplatforms\u002Fandroid":116,"\u002Fplatforms\u002Fandroid-surround":217},[4,23,61,82,108,112],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":22},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Guides","i-lucide-book-open","\u002Fguides","2.guides",[29,33,37,41,45,49,53,57],{"title":30,"path":31,"stem":32},"Connection & config","\u002Fguides\u002Fconnection","2.guides\u002F1.connection",{"title":34,"path":35,"stem":36},"Publish, RPC, history, presence","\u002Fguides\u002Foperations","2.guides\u002F2.operations",{"title":38,"path":39,"stem":40},"Events","\u002Fguides\u002Fevents","2.guides\u002F3.events",{"title":42,"path":43,"stem":44},"Subscriptions","\u002Fguides\u002Fsubscriptions","2.guides\u002F4.subscriptions",{"title":46,"path":47,"stem":48},"Tokens","\u002Fguides\u002Ftokens","2.guides\u002F5.tokens",{"title":50,"path":51,"stem":52},"Payloads (base64 vs rawJson)","\u002Fguides\u002Fpayloads","2.guides\u002F6.payloads",{"title":54,"path":55,"stem":56},"Rust backend","\u002Fguides\u002Frust","2.guides\u002F7.rust",{"title":58,"path":59,"stem":60},"Permissions","\u002Fguides\u002Fpermissions","2.guides\u002F8.permissions",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":22},"API reference","i-lucide-file-code","\u002Freference","3.reference",[67,71,75,79],{"title":68,"path":69,"stem":70},"JavaScript API","\u002Freference\u002Fjavascript-api","3.reference\u002F1.javascript-api",{"title":72,"path":73,"stem":74},"Types","\u002Freference\u002Ftypes","3.reference\u002F2.types",{"title":76,"path":77,"stem":78},"Tauri commands","\u002Freference\u002Fcommands","3.reference\u002F3.commands",{"title":58,"path":80,"stem":81},"\u002Freference\u002Fpermissions","3.reference\u002F4.permissions",{"title":83,"icon":84,"path":85,"stem":86,"children":87,"page":22},"Platforms","i-lucide-monitor-smartphone","\u002Fplatforms","4.platforms",[88,92,96,100,104],{"title":89,"path":90,"stem":91},"Overview","\u002Fplatforms\u002Foverview","4.platforms\u002F1.overview",{"title":93,"path":94,"stem":95},"Desktop","\u002Fplatforms\u002Fdesktop","4.platforms\u002F2.desktop",{"title":97,"path":98,"stem":99},"Android","\u002Fplatforms\u002Fandroid","4.platforms\u002F3.android",{"title":101,"path":102,"stem":103},"iOS","\u002Fplatforms\u002Fios","4.platforms\u002F4.ios",{"title":105,"path":106,"stem":107},"Centrifugo server","\u002Fplatforms\u002Fserver","4.platforms\u002F5.server",{"title":109,"path":110,"stem":111},"Deprecations","\u002Fdeprecations","5.deprecations",{"title":113,"path":114,"stem":115},"Changelog","\u002Fchangelog","9.changelog",{"id":117,"title":97,"body":118,"description":210,"extension":211,"generated":22,"links":212,"meta":213,"navigation":214,"path":98,"seo":215,"stem":99,"__hash__":216},"docs\u002F4.platforms\u002F3.android.md",{"type":119,"value":120,"toc":203},"minimark",[121,126,145,157,168,172,196],[122,123,125],"h2",{"id":124},"tls","TLS",[127,128,129,130,134,135,144],"p",{},"The SDK's default TLS verifier on Android needs JNI and Gradle setup in the app. To make ",[131,132,133],"code",{},"wss:\u002F\u002F","\nwork with no setup, the plugin builds the client on Android with Mozilla's root certificates\n(",[136,137,141],"a",{"href":138,"rel":139},"https:\u002F\u002Fcrates.io\u002Fcrates\u002Fwebpki-roots",[140],"nofollow",[131,142,143],{},"webpki-roots",") instead.",[127,146,147,148,152,153,156],{},"The catch: certificates trusted only on the device (user-installed CAs, a corporate MITM proxy,\na self-signed dev certificate) are ",[149,150,151],"strong",{},"not"," trusted. Use a certificate from a public CA, or plain\n",[131,154,155],{},"ws:\u002F\u002F"," for local development.",[127,158,159,160,163,164,167],{},"CI builds the plugin for ",[131,161,162],{},"aarch64-linux-android"," and ",[131,165,166],{},"x86_64-linux-android"," to check this path.",[122,169,171],{"id":170},"reaching-your-dev-server","Reaching your dev server",[173,174,175,187],"ul",{},[176,177,178,179,182,183,186],"li",{},"From the emulator, the host machine is ",[131,180,181],{},"10.0.2.2",": ",[131,184,185],{},"ws:\u002F\u002F10.0.2.2:8000\u002Fconnection\u002Fwebsocket",".",[176,188,189,190,163,193,186],{},"From a device on the same network, use the machine's LAN address, or\n",[131,191,192],{},"adb reverse tcp:8000 tcp:8000",[131,194,195],{},"ws:\u002F\u002Flocalhost:8000\u002F...",[127,197,198,199,202],{},"The app needs the ",[131,200,201],{},"INTERNET"," permission, which the Tauri Android template already has.",{"title":204,"searchDepth":205,"depth":206,"links":207},"",2,3,[208,209],{"id":124,"depth":205,"text":125},{"id":170,"depth":205,"text":171},"TLS with Mozilla roots, reaching a dev server from the emulator.","md",null,{},true,{"title":97,"description":210},"I6nPvF410haX6Zv8Kvo_AP-lHv2ohP89SNuTyGuyq-o",[218,220],{"title":93,"path":94,"stem":95,"description":219,"children":-1},"Windows, macOS and Linux.",{"title":101,"path":102,"stem":103,"description":221,"children":-1},"iOS devices and the simulator.",1794166801541]