我正在尝试做一些简单的网站应用程序来显示我的网站并添加一些特定的功能.
我的想法是做一些类似移动Facebook应用程序的东西.简单地说,我需要显示一个网站并替换文件输入 – 用户应该能够从相机捕获图片或从图库中选择它(多选)并将其附加到帖子.
TL; DR;
检查底部的图像.
我尝试过的:
使用Cordova与Camera和Image选择器插件并在InnAppbrowser中显示网页
用相机拍照并从画廊中挑选照片然后将它们上传到服务器 – 有很多例子.
我发现了什么麻烦:
InnAppbrowser被强制全屏,所以我无法调整它的大小并放置一些按钮来挑选它下面的图片.
我需要什么:
我只需要以某种方式附加图像(从图库或相机)到表单文件输入或将它们上传到某种api – api会在服务器上处理图像并返回一些ID,我可以使用它而不是表单中的文件输入页面将图像附加到帖子.一些隐藏的输入,我只是插入上传图像的ID以附加到帖子(如果条件进入我的PHP脚本,我会写一些).
我需要我的应用程序是多平台(Android,IOS,WP),所以这就是我使用Apache Cordova的原因.我已经尝试了很多解决方案,我已经搜索了5个小时.但我找不到任何有用的东西.
有这样的经验吗?有人制作某种应用吗?
如果您可以提出任何解决方案(成为Cordova并不重要,但必须是多平台)我会很高兴!
谢谢你的时间!
有正常文件输入的桌面版屏幕:
我的愿景是移动应用程序版本,在网络浏览器下有摄像头和图像选择器选项:
解决方法:
我想我不清楚.技术答案是Cordova / Phonegap不用于创建网站应用程序.这意味着从技术上讲,没有“正确的方法”来做你要求的事情.
>对于网站应用程序,所有页面都是从网站呈现的,并通过网页/ webbrowser进行控制.
>对于移动应用程序,应用程序可以直接控制的所有页面都在移动设备上呈现.但是,可以从服务器或移动应用程序呈现(和/或创建)页面,但页面的控制权保留在呈现(或创建)页面的一侧.可以移动的双方之间有明确的界限,但在程序员的*危险*. (这里没有聪明点,只增加了安全问题.)
但是,Cordova和Phonegap确实有插件.整个目的是使用插件来简化某些任务.但是,手机和网站之间有一条清晰的界限.要明确最后一部分,这意味着手机上的所有“插件服务”(加速计,联系人列表等)都可以直接供应用程序使用,而不是网站.然而,一些“服务”也可以作为HTML5 API使用,例如“相机”和“地理位置” – 将两者混合是危险的.如果使用,HTML5 API应保留在Web服务器端.用户体验与HTML5不同. (我不会再讨论HTML5 API,因为它们超出了本讨论的范围)
为了使您的想法有效,您将需要以下“core”(或equivalent third-party)插件
在文件传输和摄像头上,如果需要,您可以从网络服务器执行所有操作.然后,最终用户的唯一任务是选择适当的文件夹和图像.如果从服务器端执行此操作,则无法使用插件.
如果要使用插件,则无法使用服务器端生成的网页.您必须在移动设备上创建表单.这意味着页面和表单驻留在移动设备上.但是,如果正确编写网页,则可以动态添加或删除元素.这意味着在移动端,您可以控制用户体验的每一步,并可以增强体验.
在inappbrowser上,一个常见的技巧是将网站放在iframe中.但是,您无法直接控制iframe.另一个常见技巧是通过API提交服务器 – 然后单独更新可见网页.另一个常见的技巧是拥有一个可以处理网页更新的websocket的网页.但是,这也可以通过推送到网页,或让网页进行服务器轮询来完成.同样,应用程序没有直接控制网页.
整个线程做出以下假设.
>执行此任务没有“正确的方法”.
>图像(照片)存储在网站上,可以公开查看.
>它还假定不使用HTML5 API.