[{"data":1,"prerenderedAt":597},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fv1\u002Fnativephp\u002Fconfiguration":121,"\u002Fdocs\u002Fv1\u002Fnativephp\u002Fconfiguration-surround":592},[4],{"title":5,"path":6,"stem":7,"children":8,"page":44},"Docs","\u002Fdocs","docs",[9],{"title":10,"path":11,"stem":12,"children":13,"page":44},"V1","\u002Fdocs\u002Fv1","docs\u002Fv1",[14,18,22,45,58,80,93,111],{"title":15,"path":16,"stem":17},"Introduction","\u002Fdocs\u002Fv1\u002Fintroduction","docs\u002Fv1\u002F0.introduction",{"title":19,"path":20,"stem":21},"How It Works","\u002Fdocs\u002Fv1\u002Fhow-it-works","docs\u002Fv1\u002F1.how-it-works",{"title":23,"icon":24,"path":25,"stem":26,"children":27,"page":44},"Client","i-lucide-laptop","\u002Fdocs\u002Fv1\u002Fclient","docs\u002Fv1\u002F2.client",[28,32,36,40],{"title":29,"path":30,"stem":31},"Client Setup","\u002Fdocs\u002Fv1\u002Fclient\u002Fsetup","docs\u002Fv1\u002F2.client\u002F1.setup",{"title":33,"path":34,"stem":35},"Syncing","\u002Fdocs\u002Fv1\u002Fclient\u002Fsyncing","docs\u002Fv1\u002F2.client\u002F2.syncing",{"title":37,"path":38,"stem":39},"Events","\u002Fdocs\u002Fv1\u002Fclient\u002Fevents","docs\u002Fv1\u002F2.client\u002F3.events",{"title":41,"path":42,"stem":43},"Configuration","\u002Fdocs\u002Fv1\u002Fclient\u002Fconfiguration","docs\u002Fv1\u002F2.client\u002F4.configuration",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"Server","i-lucide-server","\u002Fdocs\u002Fv1\u002Fserver","docs\u002Fv1\u002F3.server",[51,55],{"title":52,"path":53,"stem":54},"Server Setup","\u002Fdocs\u002Fv1\u002Fserver\u002Fsetup","docs\u002Fv1\u002F3.server\u002F1.setup",{"title":41,"path":56,"stem":57},"\u002Fdocs\u002Fv1\u002Fserver\u002Fconfiguration","docs\u002Fv1\u002F3.server\u002F2.configuration",{"title":59,"icon":60,"badge":61,"path":62,"stem":63,"children":64,"page":44},"NativePHP","i-lucide-smartphone","Commercial","\u002Fdocs\u002Fv1\u002Fnativephp","docs\u002Fv1\u002F4.nativephp",[65,69,73,76],{"title":66,"path":67,"stem":68},"Overview","\u002Fdocs\u002Fv1\u002Fnativephp\u002Foverview","docs\u002Fv1\u002F4.nativephp\u002F1.overview",{"title":70,"path":71,"stem":72},"Setup","\u002Fdocs\u002Fv1\u002Fnativephp\u002Fsetup","docs\u002Fv1\u002F4.nativephp\u002F2.setup",{"title":41,"path":74,"stem":75},"\u002Fdocs\u002Fv1\u002Fnativephp\u002Fconfiguration","docs\u002Fv1\u002F4.nativephp\u002F3.configuration",{"title":77,"path":78,"stem":79},"Lifecycle & Events","\u002Fdocs\u002Fv1\u002Fnativephp\u002Flifecycle","docs\u002Fv1\u002F4.nativephp\u002F4.lifecycle",{"title":81,"icon":82,"badge":61,"path":83,"stem":84,"children":85,"page":44},"Server Pro","i-lucide-bar-chart-2","\u002Fdocs\u002Fv1\u002Fserver-pro","docs\u002Fv1\u002F5.server-pro",[86,89],{"title":66,"path":87,"stem":88},"\u002Fdocs\u002Fv1\u002Fserver-pro\u002Foverview","docs\u002Fv1\u002F5.server-pro\u002F1.overview",{"title":90,"path":91,"stem":92},"Features","\u002Fdocs\u002Fv1\u002Fserver-pro\u002Ffeatures","docs\u002Fv1\u002F5.server-pro\u002F2.features",{"title":94,"icon":95,"path":96,"stem":97,"children":98,"page":44},"Advanced","i-lucide-settings-2","\u002Fdocs\u002Fv1\u002Fadvanced","docs\u002Fv1\u002F6.advanced",[99,103,107],{"title":100,"path":101,"stem":102},"Service Container","\u002Fdocs\u002Fv1\u002Fadvanced\u002Fservice-container","docs\u002Fv1\u002F6.advanced\u002F0.service-container",{"title":104,"path":105,"stem":106},"Conflict Resolution","\u002Fdocs\u002Fv1\u002Fadvanced\u002Fconflict-resolution","docs\u002Fv1\u002F6.advanced\u002F1.conflict-resolution",{"title":108,"path":109,"stem":110},"Payload Mapping","\u002Fdocs\u002Fv1\u002Fadvanced\u002Fpayload-mapping","docs\u002Fv1\u002F6.advanced\u002F2.payload-mapping",{"title":112,"icon":113,"path":114,"stem":115,"children":116,"page":44},"Examples","i-lucide-book-open","\u002Fdocs\u002Fv1\u002Fexamples","docs\u002Fv1\u002F7.examples",[117],{"title":118,"path":119,"stem":120},"Task Manager","\u002Fdocs\u002Fv1\u002Fexamples\u002Ftask-manager","docs\u002Fv1\u002F7.examples\u002F1.task-manager",{"id":122,"title":41,"body":123,"description":584,"extension":585,"links":586,"meta":587,"navigation":588,"path":74,"seo":589,"stem":75,"__hash__":591},"docs\u002Fdocs\u002Fv1\u002F4.nativephp\u002F3.configuration.md",{"type":124,"value":125,"toc":573},"minimark",[126,130,133,162,169,172,178,217,232,234,238,283,291,293,298,328,335,337,342,373,386,388,393,426,437,439,444,482,485,524,526,531,561,569],[127,128,129],"p",{},"Configure NativePHP mobile offline sync behaviour for app resume, connectivity restore, background scheduling, cooldowns, network constraints, and long-running background tasks.",[127,131,132],{},"Publish the config file with:",[134,135,140],"pre",{"className":136,"code":137,"language":138,"meta":139,"style":139},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","php artisan vendor:publish --tag=tether-nativephp-config\n","bash","",[141,142,143],"code",{"__ignoreMap":139},[144,145,148,152,156,159],"span",{"class":146,"line":147},"line",1,[144,149,151],{"class":150},"sBMFI","php",[144,153,155],{"class":154},"sfazB"," artisan",[144,157,158],{"class":154}," vendor:publish",[144,160,161],{"class":154}," --tag=tether-nativephp-config\n",[127,163,164,165,168],{},"This creates ",[141,166,167],{},"config\u002Ftether-nativephp.php"," in your application.",[170,171],"hr",{},[173,174,176],"h3",{"id":175},"auto_sync_on_resume",[141,177,175],{},[134,179,182],{"className":180,"code":181,"language":151,"meta":139,"style":139},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","'auto_sync_on_resume' => env('TETHER_NATIVE_AUTO_SYNC_ON_RESUME', true),\n",[141,183,184],{"__ignoreMap":139},[144,185,186,190,192,194,197,201,204,206,209,211,214],{"class":146,"line":147},[144,187,189],{"class":188},"sMK4o","'",[144,191,175],{"class":154},[144,193,189],{"class":188},[144,195,196],{"class":188}," =>",[144,198,200],{"class":199},"s2Zo4"," env",[144,202,203],{"class":188},"(",[144,205,189],{"class":188},[144,207,208],{"class":154},"TETHER_NATIVE_AUTO_SYNC_ON_RESUME",[144,210,189],{"class":188},[144,212,213],{"class":188},",",[144,215,216],{"class":188}," true),\n",[127,218,219,220,223,224,227,228,231],{},"When ",[141,221,222],{},"true",", a ",[141,225,226],{},"PushJob"," is dispatched whenever the app becomes active again. Combine it with ",[141,229,230],{},"resume_cooldown"," to avoid redundant syncs on rapid app switching.",[170,233],{},[173,235,236],{"id":230},[141,237,230],{},[134,239,241],{"className":180,"code":240,"language":151,"meta":139,"style":139},"'resume_cooldown' => (int) env('TETHER_NATIVE_RESUME_COOLDOWN', 30),\n",[141,242,243],{"__ignoreMap":139},[144,244,245,247,249,251,253,256,260,263,265,267,269,272,274,276,280],{"class":146,"line":147},[144,246,189],{"class":188},[144,248,230],{"class":154},[144,250,189],{"class":188},[144,252,196],{"class":188},[144,254,255],{"class":188}," (",[144,257,259],{"class":258},"spNyl","int",[144,261,262],{"class":188},")",[144,264,200],{"class":199},[144,266,203],{"class":188},[144,268,189],{"class":188},[144,270,271],{"class":154},"TETHER_NATIVE_RESUME_COOLDOWN",[144,273,189],{"class":188},[144,275,213],{"class":188},[144,277,279],{"class":278},"sbssI"," 30",[144,281,282],{"class":188},"),\n",[127,284,285,286,290],{},"Minimum number of ",[287,288,289],"strong",{},"seconds"," that must pass since the last resume-triggered sync before another one is dispatched.",[170,292],{},[173,294,296],{"id":295},"auto_sync_on_connectivity",[141,297,295],{},[134,299,301],{"className":180,"code":300,"language":151,"meta":139,"style":139},"'auto_sync_on_connectivity' => env('TETHER_NATIVE_AUTO_SYNC_ON_CONNECTIVITY', true),\n",[141,302,303],{"__ignoreMap":139},[144,304,305,307,309,311,313,315,317,319,322,324,326],{"class":146,"line":147},[144,306,189],{"class":188},[144,308,295],{"class":154},[144,310,189],{"class":188},[144,312,196],{"class":188},[144,314,200],{"class":199},[144,316,203],{"class":188},[144,318,189],{"class":188},[144,320,321],{"class":154},"TETHER_NATIVE_AUTO_SYNC_ON_CONNECTIVITY",[144,323,189],{"class":188},[144,325,213],{"class":188},[144,327,216],{"class":188},[127,329,219,330,223,332,334],{},[141,331,222],{},[141,333,226],{}," is dispatched when network access becomes available. No sync is dispatched when the device goes offline.",[170,336],{},[173,338,340],{"id":339},"background_sync",[141,341,339],{},[134,343,345],{"className":180,"code":344,"language":151,"meta":139,"style":139},"'background_sync' => env('TETHER_NATIVE_BACKGROUND_SYNC', false),\n",[141,346,347],{"__ignoreMap":139},[144,348,349,351,353,355,357,359,361,363,366,368,370],{"class":146,"line":147},[144,350,189],{"class":188},[144,352,339],{"class":154},[144,354,189],{"class":188},[144,356,196],{"class":188},[144,358,200],{"class":199},[144,360,203],{"class":188},[144,362,189],{"class":188},[144,364,365],{"class":154},"TETHER_NATIVE_BACKGROUND_SYNC",[144,367,189],{"class":188},[144,369,213],{"class":188},[144,371,372],{"class":188}," false),\n",[127,374,219,375,377,378,381,382,385],{},[141,376,222],{},", schedules ",[141,379,380],{},"tether:sync"," through ",[141,383,384],{},"nativephp\u002Fmobile-background-tasks",". If that package is not installed, Tether logs a warning and skips background sync registration.",[170,387],{},[173,389,391],{"id":390},"background_interval",[141,392,390],{},[134,394,396],{"className":180,"code":395,"language":151,"meta":139,"style":139},"'background_interval' => env('TETHER_NATIVE_BACKGROUND_INTERVAL', 60),\n",[141,397,398],{"__ignoreMap":139},[144,399,400,402,404,406,408,410,412,414,417,419,421,424],{"class":146,"line":147},[144,401,189],{"class":188},[144,403,390],{"class":154},[144,405,189],{"class":188},[144,407,196],{"class":188},[144,409,200],{"class":199},[144,411,203],{"class":188},[144,413,189],{"class":188},[144,415,416],{"class":154},"TETHER_NATIVE_BACKGROUND_INTERVAL",[144,418,189],{"class":188},[144,420,213],{"class":188},[144,422,423],{"class":278}," 60",[144,425,282],{"class":188},[127,427,428,429,432,433,436],{},"Interval in ",[287,430,431],{},"minutes"," between background sync executions. Only applies when ",[141,434,435],{},"background_sync = true",".",[170,438],{},[173,440,442],{"id":441},"background_network",[141,443,441],{},[134,445,447],{"className":180,"code":446,"language":151,"meta":139,"style":139},"'background_network' => env('TETHER_NATIVE_BACKGROUND_NETWORK', 'any'),\n",[141,448,449],{"__ignoreMap":139},[144,450,451,453,455,457,459,461,463,465,468,470,472,475,478,480],{"class":146,"line":147},[144,452,189],{"class":188},[144,454,441],{"class":154},[144,456,189],{"class":188},[144,458,196],{"class":188},[144,460,200],{"class":199},[144,462,203],{"class":188},[144,464,189],{"class":188},[144,466,467],{"class":154},"TETHER_NATIVE_BACKGROUND_NETWORK",[144,469,189],{"class":188},[144,471,213],{"class":188},[144,473,474],{"class":188}," '",[144,476,477],{"class":154},"any",[144,479,189],{"class":188},[144,481,282],{"class":188},[127,483,484],{},"Network constraint for background sync. Accepted values:",[486,487,488,501],"table",{},[489,490,491],"thead",{},[492,493,494,498],"tr",{},[495,496,497],"th",{},"Value",[495,499,500],{},"Meaning",[502,503,504,514],"tbody",{},[492,505,506,511],{},[507,508,509],"td",{},[141,510,477],{},[507,512,513],{},"Run on WiFi or cellular (default)",[492,515,516,521],{},[507,517,518],{},[141,519,520],{},"wifi",[507,522,523],{},"Only run when WiFi is available",[170,525],{},[173,527,529],{"id":528},"background_long_running",[141,530,528],{},[134,532,534],{"className":180,"code":533,"language":151,"meta":139,"style":139},"'background_long_running' => env('TETHER_NATIVE_BACKGROUND_LONG_RUNNING', false),\n",[141,535,536],{"__ignoreMap":139},[144,537,538,540,542,544,546,548,550,552,555,557,559],{"class":146,"line":147},[144,539,189],{"class":188},[144,541,528],{"class":154},[144,543,189],{"class":188},[144,545,196],{"class":188},[144,547,200],{"class":199},[144,549,203],{"class":188},[144,551,189],{"class":188},[144,553,554],{"class":154},"TETHER_NATIVE_BACKGROUND_LONG_RUNNING",[144,556,189],{"class":188},[144,558,213],{"class":188},[144,560,372],{"class":188},[127,562,219,563,565,566,568],{},[141,564,222],{},", asks ",[141,567,384],{}," to give the sync command more execution time when that capability is available.",[570,571,572],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":139,"searchDepth":147,"depth":574,"links":575},2,[576,578,579,580,581,582,583],{"id":175,"depth":577,"text":175},3,{"id":230,"depth":577,"text":230},{"id":295,"depth":577,"text":295},{"id":339,"depth":577,"text":339},{"id":390,"depth":577,"text":390},{"id":441,"depth":577,"text":441},{"id":528,"depth":577,"text":528},"Configure NativePHP offline sync triggers for app resume, connectivity restore, background scheduling, cooldowns, and network constraints.","md",null,{"badge":61},true,{"title":590,"description":584},"Configure NativePHP Mobile Offline Sync - Laravel Tether","qa9M3afzpugo8tXgUZ3gsrWQuXLroZzHAEkBcLhuMAY",[593,595],{"title":70,"path":71,"stem":72,"description":594,"children":-1},"Install tether\u002Fnativephp-client, register the NativePHP mobile plugin, configure Composer access, and enable automatic sync in a NativePHP app.",{"title":77,"path":78,"stem":79,"description":596,"children":-1},"Understand how NativePHP lifecycle and connectivity events map to Laravel events and automatic Tether sync jobs in mobile apps.",1780481014569]