菜鸟教程小白 发表于 2022-12-12 15:49:03

javascript - Cordova iOS 相机插件返回空的 snapshop


                                            <p><p>我有一个简单的基于 Cordova 的 APP,我正在使用相机和文件插件。
我拍照,在 Canvas 上绘画,用户可以添加一些图像并保存图像。</p>

<p>在 android 上一切正常,但在 iOS 上,我将其空白且无法在 Canvas 上绘制的图片,在 XCode 控制台上我收到:</p>

<blockquote>
<p>Snapshotting a view that has not been rendered results in an empty
snapshot. Ensure your view has been rendered at least once before
snapshotting or snapshot after screen updates.</p>
</blockquote>

<p>我的相机代码是:</p>

<pre><code>      navigator.camera.getPicture(
            function(imageData) {

                bgSrc = &#39;data:image/png;base64,&#39; + imageData;
                bgImg.setAttribute(&#39;src&#39;, bgSrc);

                app.drawEditor(bgImg);
            },
            function(message) {
                alert(&#39;Failed because: &#39; + message);
                app.addClass(&#39;Home&#39;);
                app.drawMenu();
            }, {
                quality: 50,
                correctOrientation: true,
                destinationType: Camera.DestinationType.DATA_URL,
                sourceType: Camera.PictureSourceType.CAMERA,
                encodingType: Camera.EncodingType.JPEG,
                targetWidth: 720,
                saveToPhotoAlbum: false
            });
</code></pre>

<p><strong>注意</strong>:我使用的是最新版本的 cordova 和来自 github 的最新版本的相机插件。</p>

<p>有人知道如何解决这个问题吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>希望对您有所帮助:</p>

<pre><code>               function captureProfilePhoto(exec)
                      {
                              alert(&#34;captureProfilePhoto&#34;);
                           //alert(&#34;check&#34;);
                        navigator.camera.getPicture(function(imageURI){
                            exec(imageURI);
                            }, function(message){
                            alert(&#34;No attachment added&#34;);
                            //alert(labels.get(&#34;VPCS_GLOBAL_FAILURE_REASON_&#34;+language)+&#34; : &#34; + message);
                            exec(-1);
                            }, {
                            quality : 100,
                            destinationType: navigator.camera.FILE_URI,
                            sourceType : Camera.PictureSourceType.CAMERA,
                            encodingType: Camera.EncodingType.JPEG,
                            targetWidth:960,
                            targetHeight:640,
                            correctOrientation: true,
                            allowEdit : true,
                            popoverOptions: CameraPopoverOptions });


                      }
</code></pre>

<p>//用ID调用上述方法:</p>

<pre><code>                      $(&#34;#basicInfoCapturePhoto&#34;).click(function(){
                   captureProfilePhoto(function(imageURI){
                      if(imageURI != -1){
                     profileImageURI = imageURI;

               });
            }

          });
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于javascript - Cordova iOS 相机插件返回空的 snapshop,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31313774/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31313774/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: javascript - Cordova iOS 相机插件返回空的 snapshop