NativePHP:应用程序正在后台运行

移动开发 2026-07-12

我在寻找在移动操作系统上让应用在后台运行的选项(当应用不活跃,或屏幕处于关闭状态时),但在NativePHP上还没有发现相关实现。我查看了几个开源应用(例如 https://github.com/NativePHP/awesome-nativephp),但没有找到与我的请求类似的东西。可能吗?

它使用一个简单的ping请求来返回进程的实际状态:

function checkState() {
    fetch('/cgi/ch_ref.php')
        .then(response => response.text())
        .then(data => {
            // TBD: handle response data
        })
        .catch(error => {
            console.error('Ping error:', error);
        });
}

const timerInterval = setInterval(checkState, 30000);
@vite(['resources/js/ping.js'])

或者,如果不可能。在应用运行时,是否可以让屏幕始终保持常亮?

解决方案

将屏幕始终保持常亮是解决该问题的方法。

#!/bin/bash

# Script to apply screen always-on patch to NativePHP MainActivity
# Run this after: php artisan native:install

MAINACTIVITY_FILE="nativephp/android/app/src/main/java/com/nativephp/mobile/ui/MainActivity.kt"

if [ ! -f "$MAINACTIVITY_FILE" ]; then
    echo "Error: MainActivity.kt not found at $MAINACTIVITY_FILE"
    echo "Make sure to run 'php artisan native:install' first"
    exit 1
fi

echo "Applying screen always-on patch to MainActivity.kt..."

# 1. Add WindowManager import if not present
if ! grep -q "import android.view.WindowManager" "$MAINACTIVITY_FILE"; then
    echo "Adding WindowManager import..."
    sed -i '/import android\.view\.ViewGroup/a import android.view.WindowManager' "$MAINACTIVITY_FILE"
fi

# 2. Add FLAG_KEEP_SCREEN_ON after instance = this
if ! grep -q "FLAG_KEEP_SCREEN_ON" "$MAINACTIVITY_FILE"; then
    echo "Adding FLAG_KEEP_SCREEN_ON to onCreate()..."
    sed -i '/instance = this/a \\n        \/\/ Keep screen always on while app is running\n        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)' "$MAINACTIVITY_FILE"
fi

echo "✅ Screen always-on patch applied successfully!"
echo "The app will now keep the screen on while running."
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章