繁体   English   中英

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

[英]How can I run PHP Code locally within a WebView App?

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

我在google play看到以下app,声称有php server、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 是服务器端代码。

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

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

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

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

第一个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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM