DevExpressとPhoneGapで開発されたハイブリッドアプリがあります。iOSのPhoneGapアプリでwindow.open:このアプリはスキームファイル
私は
window.open('file:///var/mobile/Containers/Data/.../image.jpg', '_system');
を介してローカルのjpeg画像を開こうが、それは誤りerror: "This app is not allowed to query for scheme file"
で失敗、iPhoneとiPad(iOSの最新バージョン9)に(もう)は動作しません。
(アプリは、それがwindow.requestFileSystem(LocalFileSystem.PERSISTENT, 0, ...)
メソッドを介して得たフォルダにPhoneGapの方法FileTransfer.download
を経由して、事前に画像をダウンロードしました。)
それは、Android上で正常に動作し、それが数週間前にもiPhone上でうまく働きました。私はそれがDevExtremeのアップデートのためにPhoneGapアップデートに関連していると思います。
以前はPhoneGap 3.7.0を使用しましたが、cli-5.2.0を使用しています。
これは既に似ていますが、すでに2歳で、私の質問を解決していないようです。この質問は(https://www.devexpress.com/Support/Center/Question/Details/Q486439)すでに見つかりました。
GapDebugを使用して、私はこれは、ログに表示:
<Warning>: THREAD WARNING: ['InAppBrowser'] took '38.211914' ms. Plugin should use a background thread.
<Warning>: THREAD WARNING: ['File'] took '26.509033' ms. Plugin should use a background thread.
<Warning>: -canOpenURL: failed for URL: "file:///var/mobile/Containers/Data/Application/9425CCB6-77F7-4337-B37C-7DB577C2F6B4/Documents/myDocuments/a96e7238-a502-49e6-bcd3-186937afc3cb/camera_1458208164206.jpg" - error: "This app is not allowed to query for scheme file"
それはconfig.xmlのに追加する権限の問題が、何のいくつかの種類がありますか?
これは私のconfig.xmlにある:
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id="com.devexpress.apptemplate" version="1.0" versionCode="1">
<name>ApplicationTemplate</name>
<preference name="phonegap-version" value="cli-5.2.0" />
<preference name="permissions" value="none" />
<preference name="prerendered-icon" value="true" />
<preference name="android-windowSoftInputMode" value="adjustResize" />
<preference name="SplashScreen" value="splash" />
<preference name="SplashScreenDelay" value="60000" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#000000" />
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
<feature name="http://api.phonegap.com/1.0/network" />
<gap:plugin name="com.devexpress.plugins.devextremeaddon" version="1.0.1" />
<gap:plugin name="cordova-plugin-ios-longpress-fix" version="1.1.0" source="npm" />
<gap:plugin name="org.apache.cordova.camera" version="0.3.6" />
<gap:plugin name="org.apache.cordova.file" version="1.3.3" />
<gap:plugin name="org.apache.cordova.file-transfer" version="0.5.0" />
<gap:plugin name="org.apache.cordova.inappbrowser" version="0.6.0" />
<gap:plugin name="org.apache.cordova.media-capture" version="0.3.6" />
<gap:plugin name="org.apache.cordova.media" version="0.2.16" />
<gap:plugin name="org.apache.cordova.network-information" version="0.2.15" />
<gap:plugin name="cordova-plugin-statusbar" version="2.1.0" source="npm" onload="true" />
<gap:plugin name="org.apache.cordova.splashscreen" version="1.0.0" onload="true" />
<access origin="*" subdomains="true"/>
<gap:plugin name="cordova-plugin-whitelist" source="npm"/>
<allow-navigation href="*" />
<allow-intent href="*" />
</widget>
私もhttps://github.com/apache/cordova-plugin-whitelistに応じて二行
<allow-navigation href="*" />
<allow-intent href="*" />
を追加し、それが助けにはなりません。それはいないようだが -
私はイオン性、他のハイブリッドフレームワークは、また、CLIのバージョンなどの新しいPhoneGapのバージョン、とパーミッションの問題があるかもしれないと、上記の<allow-navigation href="*" />
を使用する必要があることを彼らのドキュメント
http://docs.ionic.io/docs/cordova-whitelistに言及していることを見ました私の場合に役立ちます。
- https://github.com/phonegap/phonegap-app-developer/issues/413
- https://issues.apache.org/jira/browse/CB-11027
===アップデート2:
=== ===更新
私はPhoneGapのの&コルドバのgithubの上の2枚のチケットを作成しました===
以下に示唆するように、私は今代わりにhttps://github.com/pwlin/cordova-plugin-file-opener2を使用しています。これはうまくいきます。
私は同じ問題に直面しています。..私はこの問題を避けるためにcordova-plugin-file-opener2(https://github.com/pwlin/cordova-plugin-file-opener2)を使い始めました。 – gmartini20
@ gmartini20ありがとう、これも私のために働く:) –
@ gmartini20あなたのコメントを答えますか?ちなみに:file-opener2プラグインにはスペースがあるファイルパスに問題があるようですが、window.open()はそうではありません。 –