菜鸟教程小白 发表于 2022-12-13 04:57:24

ios - InAppBrowser 未在 Phonegap 3.1.0 中调用


                                            <p><p>我从 NPM 获取了最新版本的 phonegap 并安装了它。我创建了一个新项目,并根据 PhoneGap <a href="http://docs.phonegap.com/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface" rel="noreferrer noopener nofollow"></a> 上的文档添加了 InAppBrowser 插件。 .然后我从我的 webapp 进行 JavaScript 调用,但我从来没有看到我在下面编码的警报,也没有看到我在 Xcode 中为插件设置的任何断点。 </p>

<p>这是 JS 的代码:</p>

<pre><code>var pdfViewer = {
    loadPdf: function(record, successCallback, errorCallback) {
      var filename = record.get(&#39;building&#39;) + &#34;-&#34; + record.get(&#39;floor&#39;) + &#34;.pdf&#34;;
      var url = People.app.srvcUrl + Global.floorPlanUri + filename + &#34;?access_token=&#34; + People.app.bearerToken.access_token;
      if (Ext.os.is.iOS) {
      //    cordova.exec(successCallback, errorCallback, &#34;PDFViewer&#34;, &#34;loadRemotePdf&#34;, );


            var ref = window.open(url, &#39;_blank&#39;, &#39;location=yes&#39;);
            ref.addEventListener(&#39;loadstart&#39;, function() { alert(&#34;You made it!&#34;); });
      } else {
            window.open(url, &#39;_system&#39;, &#39;location=yes&#39;);
      }
    }
};
</code></pre>

<p>会发生什么情况是,该 url 被启动以在我现有的应用程序顶部显示一个 PDF,没有警报,也没有位置/关闭按钮。为什么不使用 InAppBrowser 的任何想法?我需要让它显示在一个带有关闭按钮的窗口中。</p>

<p>这是我在运行应用程序时在 Xcode 中看到的输出:</p>

<pre><code>2013-10-23 09:39:02.380 mobile-xxx-ios Multi-tasking -&gt; Device: YES, App: YES
2013-10-23 09:39:02.426 mobile-xxx-ios Unlimited access to network resources
2013-10-23 09:39:02.564 mobile-xxx-ios 0.477016ms
2013-10-23 09:39:02.567 mobile-xxx-ios 0.230014ms
2013-10-23 09:39:02.569 mobile-xxx-ios 0.252008ms
2013-10-23 09:39:02.571 mobile-xxx-ios 7.416010ms
2013-10-23 09:39:02.957 mobile-xxx-ios Resetting plugins due to page load.
2013-10-23 09:39:05.789 mobile-xxx-ios Finished load of: file:///var/mobile/Applications/5916FB20-FDEC-40A7-AE77-9EF14AF30585/mobile-xxx-ios.app/www/index.html
2013-10-23 09:39:18.168 mobile-xxx-ios Resetting plugins due to page load.
2013-10-23 09:39:18.680 mobile-xxx-ios Finished load of: https://pdfs.xxx.com/noauth/plans/x-1.pdf
FAILED to create agar for HelveticaLTMM.
FAILED to create agar for TimesLTMM.
</code></pre>

<p>这是我的 config.xml:</p>

<pre><code>&lt;widget xmlns   = &#34;http://www.w3.org/ns/widgets&#34;
      id      = &#34;io.cordova.helloCordova&#34;
      version   = &#34;2.0.0&#34;&gt;
    &lt;name&gt;Mobile App&lt;/name&gt;

    &lt;description&gt;
      Mobile Phonegap Application
    &lt;/description&gt;

    &lt;access origin=&#34;*&#34; subdomains=&#34;true&#34;/&gt;

    &lt;content src=&#34;index.html&#34; /&gt;

    &lt;!-- Preferences for iOS --&gt;
    &lt;preference name=&#34;KeyboardDisplayRequiresUserAction&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;SuppressesIncrementalRendering&#34; value=&#34;false&#34; /&gt;
    &lt;preference name=&#34;UIWebViewBounce&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;TopActivityIndicator&#34; value=&#34;gray&#34; /&gt;
    &lt;preference name=&#34;EnableLocation&#34; value=&#34;false&#34; /&gt;
    &lt;preference name=&#34;EnableViewportScale&#34; value=&#34;false&#34; /&gt;
    &lt;preference name=&#34;AutoHideSplashScreen&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;ShowSplashScreenSpinner&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;MediaPlaybackRequiresUserAction&#34; value=&#34;false&#34; /&gt;
    &lt;preference name=&#34;AllowInlineMediaPlayback&#34; value=&#34;false&#34; /&gt;
    &lt;preference name=&#34;OpenAllWhitelistURLsInWebView&#34; value=&#34;false&#34; /&gt;
    &lt;preference name=&#34;BackupWebStorage&#34; value=&#34;cloud&#34; /&gt;
    &lt;preference name=&#34;permissions&#34; value=&#34;none&#34; /&gt;
    &lt;preference name=&#34;orientation&#34; value=&#34;default&#34; /&gt;
    &lt;preference name=&#34;target-device&#34; value=&#34;universal&#34; /&gt;
    &lt;preference name=&#34;fullscreen&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;webviewbounce&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;prerendered-icon&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;stay-in-webview&#34; value=&#34;false&#34; /&gt;
    &lt;preference name=&#34;ios-statusbarstyle&#34; value=&#34;black-opaque&#34; /&gt;
    &lt;preference name=&#34;detect-data-types&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;exit-on-suspend&#34; value=&#34;false&#34; /&gt;
    &lt;preference name=&#34;show-splash-screen-spinner&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;auto-hide-splash-screen&#34; value=&#34;true&#34; /&gt;
    &lt;preference name=&#34;disable-cursor&#34; value=&#34;false&#34; /&gt;
    &lt;preference name=&#34;android-minSdkVersion&#34; value=&#34;7&#34; /&gt;
    &lt;preference name=&#34;android-installLocation&#34; value=&#34;auto&#34; /&gt;

    &lt;feature name=&#34;SSLSelfCertOverride&#34;&gt;
      &lt;param name=&#34;ios-package&#34; value=&#34;SSLSelfCertOverride&#34; /&gt;
    &lt;/feature&gt;
    &lt;feature name=&#34;LocalStorage&#34;&gt;
      &lt;param name=&#34;ios-package&#34; value=&#34;CDVLocalStorage&#34;/&gt;
    &lt;/feature&gt;
    &lt;feature name=&#34;PhoneDialer&#34;&gt;
      &lt;param name=&#34;ios-package&#34; value=&#34;PhoneDialer&#34;/&gt;
      &lt;param name=&#34;onload&#34; value=&#34;true&#34; /&gt;
    &lt;/feature&gt;
    &lt;feature name=&#34;Sms&#34;&gt;
      &lt;param name=&#34;ios-package&#34; value=&#34;Sms&#34;/&gt;
      &lt;param name=&#34;onload&#34; value=&#34;true&#34; /&gt;
    &lt;/feature&gt;
    &lt;feature name=&#34;EmailComposer&#34;&gt;
      &lt;param name=&#34;ios-package&#34; value=&#34;EmailComposer&#34;/&gt;
      &lt;param name=&#34;onload&#34; value=&#34;true&#34; /&gt;
    &lt;/feature&gt;
    &lt;feature name=&#34;InAppBrowser&#34;&gt;
      &lt;param name=&#34;ios-package&#34; value=&#34;CDVInAppBrowser&#34; /&gt;
    &lt;/feature&gt;
    &lt;feature name=&#34;Geolocation&#34;&gt;
      &lt;param name=&#34;ios-package&#34; value=&#34;CDVLocation&#34; /&gt;
    &lt;/feature&gt;
    &lt;feature name=&#34;PackageInfo&#34;&gt;
      &lt;param name=&#34;ios-package&#34; value=&#34;PackageInfo&#34; /&gt;
    &lt;/feature&gt;
    &lt;feature name=&#34;PDFViewer&#34;&gt;
      &lt;param name=&#34;ios-package&#34; value=&#34;PDFViewer&#34; /&gt;
    &lt;/feature&gt;
&lt;/widget&gt;
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>请检查以下内容:</p>

<p><strong>第 1 步</strong> </p>

<p>在您的“platforms/ios/www/plugins/”中,是否有“org.apache.cordova.inappbrowser”目录?
如果答案是否定的,则没有添加成功。</p>

<p><strong>解决方案</strong>:创建目录“org.apache.cordova.inappbrowser/www/”,并将“InAppBrowser.js”放入其中。您可以在 PhoneGap 项目根目录“<em>yourproject</em>/plugins/org.apache.cordova.inappbrowser/www/”中找到它。然后转到第 2 步。</p>

<p><strong>第 2 步</strong> </p>

<p>打开“platforms/ios/www/cordova_plugins.js”。在“module.exports”中,添加:</p>

<pre><code>    {
      &#34;file&#34;: &#34;plugins/org.apache.cordova.inappbrowser/www/InAppBrowser.js&#34;,
      &#34;id&#34;: &#34;org.apache.cordova.inappbrowser.InAppBrowser&#34;,
      &#34;clobbers&#34;: [
            &#34;window.open&#34;
      ]
    }
</code></pre>

<p>在“module.exports.metadata”中,添加:</p>

<pre><code>    &#34;org.apache.cordova.inappbrowser&#34;: &#34;0.2.5&#34;
</code></pre>

<p>并保存。 “0.2.5”是插件的版本,可以在plugin.xml中找到。 (看起来这个数字无关紧要。)</p>

<p>然后运行它,打开检查器并检查“InAppBrowser.js”是否已成功添加到 head 标签中。 </p>

<p><strong>注意:</strong>在不修改“cordova_plugins.js”的情况下手动将“InAppBrowser.js”添加到head标签中将不起作用。如果1的回答是肯定的,直接进入步骤2。</p>

<p>希望这能解决您的问题。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - InAppBrowser 未在 Phonegap 3.1.0 中调用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19530598/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19530598/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - InAppBrowser 未在 Phonegap 3.1.0 中调用