37260


初投稿になります。

Monacaを使ってハイブリットアプリを作成しまして、iOS版は無事リリース出来たのですが、Android版で躓いています。  
Monacaデバッガーでは正常動作するんですが、Androidでデバッグビルドして動作検証した際、エラーが多発するため、一個一個メソッドやプラグインの検証を重ねた結果、  
<https://github.com/tkyaji/cordova-plugin-crypt-file>  
こちらのプラグインと、  
FILEAPIの、window.resolveLocalFileSystemURL()を併用した際、エラーとなることが分かりました。

こちらのソースで検証しましたが、エラーの動作もなく、無反応という状態です。

[code]

    <script>
        function test() {
            window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(entry) {
                var nativePath = entry.toURL();
                alert('Native URI: ' + nativePath);
            }, onErrorLoadFs);
        }
        function onErrorLoadFs(err) {
            alert(err);
        }
    </script>
    <body>
          <ons-button onclick="test()">click</ons-button>
    </body>
    
[/code]

**file://** を **<http://localhost/>**
に変換しているせいなのかと思い、色々指定を変えてみたのですが、自分の力では実行に至りませんでした。  
どなたか解決方法や代用プラグイン等ご存じの方が居ましたが、教えて頂けないでしょうか。  
よろしくお願いします。

* * *

## 環境

Cordova 6.2.0  
Cordova Android 5.1.1  
FileAPI 4.3.3  
CordovaCrypt 1.3.3

* * *

## 8/16 追記

対応が遅くなりました。  
Monacaサポートへ数回問い合わせをした結果、

> 「cordova-plugin-crypt-file」プラグインが組み込まれた場合、  
>  Androidビルド時に、他のCordovaプラグインが正常に組み込まれない等の 問題が発生いたします。
>
> 上記の事象の原因は、 「cordova-plugin-crypt-file」プラグインに設定されている ビルド時の処理によるものになります。
>
> そのため、cordova-plugin-crypt-fileプラグインにつきましては、 Monacaではご利用になれません。

このような回答を頂きました。  
iosでは正常に稼働しているため、悔しいです。  
他に同様のプラグインをご存知のかたいらっしゃらないでしょうか。


CC BY-SA 3.0
2017-07-31T15:13:29.670
36827
2017-08-16T21:10:56.910
2017-08-16T15:00:50.383
24670
24670
question
javascript monaca html5 cordova
AndroidでCordova暗号化プラグインとFileAPIが併用出来ない


ようやく解決方法を見つけたため、新規コメントにて記載させて頂きます。  
（xmlを勉強していた為、遅くなりました。申し訳ありません）  
まず、cryptプラグインはMonacaとは相性が悪いため、通常使用では駄目でした。  
そこで、FILEAPIを暗号化の対象からはずして見たところ、上手く動作しました。

cryptプラグイン内、plugin.xmlを、以下の通り修正しました。  
（ただし、本来提供されている形から外れてしまうため、ご了承下さい）

[code]

    <cryptfiles>
        <include>
            <file regex="\.(htm|html|css|js)$" />
        </include>
        <exclude>
            <file regex="cordova\.js" />  ←追加
            <file regex="plugins" />      ←追加
        </exclude> 
    </cryptfiles>
    
[/code]

除外に「plugin」を含むファイルを追加。fileapi関係を一挙追加でも可能だと思いますが、プラグインには個人情報等を含んでいませんので、一括でpluginとしました。  
更に、[cordova.js]も追加しています。  
こちらは勉強不足でして、上記pluginだけでは動作しなかった為、ローラー作戦でjsファイルを一つずつ潰していった結果、こちらも追加しないと動作しないことが分かりました。

以上がこちらが対策した内容となります。  
コメント頂いた皆様、ありがとうございました。


CC BY-SA 3.0
2017-08-16T21:10:56.910
37260
2017-08-16T21:10:56.910
24670
36827
answer