如何在 WebView 应用程序中本地运行 PHP 代码?

问题描述 投票:0回答:2

所以我得到了一个有严格限制的项目, 我需要为 WebView 应用程序运行存储在本地应用程序目录中的 php 文件。但是我什至不知道从哪里开始实施或集成

我在google play中看到以下应用程序,声称有php服务器,mysql等

https://play.google.com/store/apps/details?id=com.sylkat.apache

所以我知道可以在 Android 应用程序中运行 php 文件。

我的想法是什么,

  • 在 webview 应用程序中拥有 php 服务器, 将 php 文件添加到应用程序目录,
  • 配置webview打开以下URL“Localhost”
  • Webview应用程序不需要MySQL,只需处理php即可。
  • Webview 应用程序不需要担心存储,因为不会保存任何存储。

我在这个问题中并不是要寻找什么

  • 使用Playstore中的其他应用程序,因为这将是一个独立的应用程序。
  • 指示将文件转换为其他格式,如html、javascript等
  • 建议与问题无关的选项。

我知道 php 是服务器端代码。

php android android-studio webview
2个回答
1
投票

如果您希望在现代 Android 设备上运行 PHP 代码,这是您面临的挑战列表。

我搜索了一些项目,暗示PHP可以在Android上运行

虽然我不能谈论任何闭源项目,但有一些开源项目,DroidPHP以及更新的MyServerlampTermux。但需要一些历史/背景来理解这些项目代表什么。

PHP 是用 C/C++ 编写的。虽然 Android 确实通过 Android NDK 支持 C/C++,但缺少的是 PHP 服务器需要在恒定功率的Posix 兼容环境中运行,而 Android 不支持开箱即用

第一个

DroidPHP
,似乎已被作者放弃,使用Busybox,它提供了POSIX兼容环境,但需要超级用户/root权限,这需要“root”Android设备。请注意,“生根”通常会使设备保修失效。

多年来拥有数十亿用户,Android 生态系统提高了每个版本的安全性,减少了任何不良行为者的攻击面。

另外两个 github 项目使用 Termux,它提供了一个类似 POSIX 的环境,可以在 root 下使用,也可以在没有 root 的情况下以更有限的方式使用。

嘿,听起来不错,所以我可以使用

Termux
来运行我的 PHP 代码。

一些注意事项:

  1. Android 制造商添加了自己的电池节省处理功能,从而形成了一个类似以下网站:https://dontkillmyapp.com/ 如果您的应用程序仅在前台运行,您可能是安全的。

  2. 来自有关 Android 12 的 Termux 存储库自述文件:

注意:Termux 在 Android 12 上被破坏。Android 操作系统将杀死任何大于 32 的(虚拟)进程(限制适用于所有应用程序组合),并且还会杀死任何使用过多 CPU 的进程。

  1. 如果您打算发布独立应用程序,则需要托管自己的软件包。来自 Termux 常见问题解答

是的,由于 Termux 是开源的,并使用 GNU GPL v3.0 和某些组件 Apache-2.0 许可证,只要满足许可证要求,您就可以自由地重新使用现有组件。

但是,许可证不涵盖“免费”使用我们的托管功能,而我们的托管功能有些有限。您不能在您自己的项目中使用我们的包存储库。请自行构建包并托管它们。

开始了解开发者 wiki 页面上的信息:https://github.com/termux/termux-packages/wiki

  1. 由于安全限制增加Google Play 商店不再支持 Termux。因此,如果 Android 应用程序用于商业发布,则将您的项目迁移到 Java/Kotlin 甚至 WebView 中的 JavaScript 将允许 Google Play 商店支持,因为 Termux
    (及其操作要求)当前不兼容。
如果您遵循

嵌入尝试问题线程,您会发现嵌入是一个复杂的过程。

来源:

https://www.reddit.com/r/termux/comments/p3exkr/how_can_i_make_an_android_apk_app_based_on_termux/


0
投票
你必须使用 hopweb 是一个很好的解决方案

https://play.google.com/store/apps/details?id=com.venter.hopweb&hl=en_US

© www.soinside.com 2019 - 2024. All rights reserved.