菜鸟教程小白 发表于 2022-12-12 21:08:38

javascript - 在 Cordova iOS 中使用 Papaparse 解析本地 CSV 文件


                                            <p><p>我正在使用 <code>Papaparse</code> 并尝试解析保存在 <code>www</code> 内的文件夹中的 CSV 文件。 </p>

<p>它适用于 <code>android</code> 和 <code>browser</code> 平台。 </p>

<p>但是,当涉及到 <code>iOS</code> 时,它会返回错误回调。</p>

<p>当我输出错误时,它返回 <code>undefined</code>。</p>

<p>我还检查了iOS的文件路径是否正确,文件确实存在。</p>

<p>我已经尝试将文件路径设置为 <code>"folder/myfile.csv"</code> 但由于它导致错误,我尝试使用文件插件获取其完整路径。</p>

<p>其他人遇到过同样的问题并有解决方法吗?</p>

<p>这是我的代码。</p>

<pre><code>var getOldData = function() {
    var dir = &#34;folder/myfile.csv&#34;,
      file = null;

    file = (isiOS) ? cordova.file.applicationDirectory + &#34;www/&#34; + dir : dir;

    Papa.parse(file, {
      download: true,
      error: function(err, file) {
            console.log(&#34;&gt;&gt;&gt;&gt; PAPA PARSE ERROR&#34;);
            console.log(&#34;&gt;&gt;&gt;&gt;&#34; + err); // this returns undefined
            console.log(&#34;&gt;&gt;&gt;&gt;&#34; + file); // this returns undefined as well
      },
      complete: function(results) {
            console.log(&#34;&gt;&gt;&gt;&gt; PAPA RESULTS&#34;);
            console.log(results);
      },
      header: true,
      dynamicTyping: true
    });
};
</code></pre>

<p>提前致谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>同样的问题。</p>

<p>我找到了 <a href="https://github.com/nolanlawson/pouchdb-load/issues/11" rel="noreferrer noopener nofollow">this issue</a>在 ios 上的 pouchdb 中加载。看来</p>

<blockquote>
<p>... for some reason, iOS is returning 0 as the status for the xhr request even when there is data loaded from file</p>
</blockquote>

<p>所以我在 papaparse <code>_chunkLoaded</code> 函数中改了,这一行</p>

<pre><code>if (xhr.status &lt; 200 || xhr.status &gt;= 400)
</code></pre>

<p>这个:</p>

<pre><code>if (!((xhr.status &gt;= 200 &amp;&amp; xhr.status &lt; 300) || (xhr.status==0 &amp;&amp; xhr.responseText.length&gt;0)))
</code></pre>

<p>现在它可以工作了。</p>

<p>我在相应的 <a href="https://github.com/mholt/PapaParse/issues/320" rel="noreferrer noopener nofollow">github issue</a> 中添加了相同的答案.
可能会包含这个补丁。</p></p>
                                   
                                                <p style="font-size: 20px;">关于javascript - 在 Cordova iOS 中使用 Papaparse 解析本地 CSV 文件,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38194078/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38194078/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: javascript - 在 Cordova iOS 中使用 Papaparse 解析本地 CSV 文件