NPM から phonegap の最新バージョンを入手してインストールしました。新しいプロジェクトを作成し、PhoneGap のドキュメントに従って InAppBrowser プラグインを追加しました. 次に、webapp から JavaScript 呼び出しを行いますが、以下でコーディングしたアラートは表示されず、Xcode でプラグイン用に設定したブレークポイントでも表示されません。
JS のコードは次のとおりです。
var pdfViewer = {
loadPdf: function(record, successCallback, errorCallback) {
var filename = record.get('building') + "-" + record.get('floor') + ".pdf";
var url = People.app.srvcUrl + Global.floorPlanUri + filename + "?access_token=" + People.app.bearerToken.access_token;
if (Ext.os.is.iOS) {
// cordova.exec(successCallback, errorCallback, "PDFViewer", "loadRemotePdf", [url, filename]);
var ref = window.open(url, '_blank', 'location=yes');
ref.addEventListener('loadstart', function() { alert("You made it!"); });
} else {
window.open(url, '_system', 'location=yes');
}
}
};
何が起こるかというと、URL が起動されて、既存のアプリの上に PDF が表示され、アラートも場所/閉じるボタンもありません。InAppBrowser が使用されていない理由はありますか? 閉じるボタンのあるウィンドウに表示する必要があります。
アプリを実行したときに Xcode に表示される出力は次のとおりです。
2013-10-23 09:39:02.380 mobile-xxx-ios[3302:60b] Multi-tasking -> Device: YES, App: YES
2013-10-23 09:39:02.426 mobile-xxx-ios[3302:60b] Unlimited access to network resources
2013-10-23 09:39:02.564 mobile-xxx-ios[3302:60b] [CDVTimer][phonedialer] 0.477016ms
2013-10-23 09:39:02.567 mobile-xxx-ios[3302:60b] [CDVTimer][sms] 0.230014ms
2013-10-23 09:39:02.569 mobile-xxx-ios[3302:60b] [CDVTimer][emailcomposer] 0.252008ms
2013-10-23 09:39:02.571 mobile-xxx-ios[3302:60b] [CDVTimer][TotalPluginStartup] 7.416010ms
2013-10-23 09:39:02.957 mobile-xxx-ios[3302:60b] Resetting plugins due to page load.
2013-10-23 09:39:05.789 mobile-xxx-ios[3302:60b] 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[3302:60b] Resetting plugins due to page load.
2013-10-23 09:39:18.680 mobile-xxx-ios[3302:60b] Finished load of: https://pdfs.xxx.com/noauth/plans/x-1.pdf
FAILED to create agar for HelveticaLTMM.
FAILED to create agar for TimesLTMM.
ここに私のconfig.xmlがあります:
<widget xmlns = "http://www.w3.org/ns/widgets"
id = "io.cordova.helloCordova"
version = "2.0.0">
<name>Mobile App</name>
<description>
Mobile Phonegap Application
</description>
<access origin="*" subdomains="true"/>
<content src="index.html" />
<!-- Preferences for iOS -->
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="UIWebViewBounce" value="true" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="EnableLocation" value="false" />
<preference name="EnableViewportScale" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="ShowSplashScreenSpinner" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="OpenAllWhitelistURLsInWebView" value="false" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="permissions" value="none" />
<preference name="orientation" value="default" />
<preference name="target-device" value="universal" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="true" />
<preference name="auto-hide-splash-screen" value="true" />
<preference name="disable-cursor" value="false" />
<preference name="android-minSdkVersion" value="7" />
<preference name="android-installLocation" value="auto" />
<feature name="SSLSelfCertOverride">
<param name="ios-package" value="SSLSelfCertOverride" />
</feature>
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage"/>
</feature>
<feature name="PhoneDialer">
<param name="ios-package" value="PhoneDialer"/>
<param name="onload" value="true" />
</feature>
<feature name="Sms">
<param name="ios-package" value="Sms"/>
<param name="onload" value="true" />
</feature>
<feature name="EmailComposer">
<param name="ios-package" value="EmailComposer"/>
<param name="onload" value="true" />
</feature>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
<feature name="PackageInfo">
<param name="ios-package" value="PackageInfo" />
</feature>
<feature name="PDFViewer">
<param name="ios-package" value="PDFViewer" />
</feature>
</widget>