将相机与 XPages 移动控件一起使用

Using the camera with the XPages Mobile Controls

在我的 XPages Mobile Controls singlePageApp 中,我想为用户提供一个界面来上传新照片或从他们 phone 上的照片库中选择现有照片。我正在使用以下代码:

        <xp:fileUpload id="fileUpload1" value="#{document1.CapturedImage}" useUploadname="false"
            filename="camerasnap.png" accept="image/*">
        </xp:fileUpload>

当用户选择从他们添加到主屏幕的图标(即独立模式)启动我的移动应用程序时,以上内容运行良好。

但是,如果他们在点击文件上传到 "Choose File" 时从移动网络浏览器(即网络应用程序模式)启动,他们可以尝试拍照或 select 现有照片,但他们始终返回到 [选择文件] 按钮旁边带有 "no file selected" 的页面。

如何为我的 Web 应用程序模式用户启用 camera/photo selection...即大多数用户?

这是 XControls 1.5 Sampler 的修改版本:

<xp:fileUpload id="fileUpload1" styleClass="fileInput" 
            style="position:absolute;
                    width:100%;
                    min-height: 182px;
                    opacity:0;"
    value="#{document1.CapturedImage}"
    useUploadname="false"
    filename="camerasnap.png" 
    accept="image/*">
    <xp:this.attrs>
        <xp:attr name="accept"
            value="image/*">
        </xp:attr>
        <xp:attr name="type"
            value="file">
        </xp:attr>
        <xp:attr name="capture"
            value="camera">
        </xp:attr>
        <xp:attr name="onchange">
            <xp:this.value><![CDATA[
                var file = event.target.files[0];                                                   
                unp.photoUploader.loadImage(file);
                                    ]]></xp:this.value>
        </xp:attr>
    </xp:this.attrs>
</xp:fileUpload>

尝试使用 <xp:attr> 添加浏览器对象元素属性。干杯。

解决方案是将 fileUpload 放在单独的 XPage 上,然后在 appPage 的 iframe 中获取它。

dominoguru Chris Toohey 在博客 post 中非常雄辩地展示了这里的随附视频:

http://www.dominoguru.com/page.xsp?id=xpage_fileupload_extlib_dialog_tutorial.html