代码之家  ›  专栏  ›  技术社区  ›  Peter Della-Nebbia

将相机与XPages移动控件配合使用

  •  0
  • Peter Della-Nebbia  · 技术社区  · 8 年前

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

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

    当用户选择从添加到主屏幕上的图标启动我的移动应用程序时(即在独立模式下),上述操作效果良好。

    但是,如果他们在点击文件上传“选择文件”时从移动web浏览器(即web应用程序模式)启动,他们可以尝试拍照或选择现有照片,但他们总是返回到[选择文件]按钮旁边“未选择文件”的页面。

    如何为我的web应用程序模式用户启用相机/照片选择。。。ie大多数用户?

    2 回复  |  直到 8 年前
        1
  •  0
  •   teleman    8 年前

    这是XControl 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> . 干杯

        2
  •  0
  •   Peter Della-Nebbia    8 年前

    解决方案是将fileUpload放在单独的XPage上,然后将其源代码放在appPage上的iframe中。

    dominoguru Chris Toohey在博客文章中非常雄辩地介绍了以下视频:

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