2013-09-26 46 views
1

我正在創建一個phonegap應用程序,用戶將捕獲一些圖片並將其附加到預定義的郵件ID。 Iam能夠捕捉圖像,但無法將所有圖片附加到應用程序文件夾中,即「/ mnt/sdcard/Android/data/pacakgename/cache /」。Phonegap - 動態郵件附件

我試圖執行動態附件中的this

我的代碼如下所示:

<html> 
<head> 
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script> 
    <script type="text/javascript" charset="utf-8" src="emailcomposer.js"></script> 

    <script type="text/javascript"> 
    document.addEventListener("deviceready", deviceready, true); 
    function deviceready() { 
     console.log("Device ready");  
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, onFail); 
    } 

function gotFS(fileSystem) { 
var reader = fileSystem.root.createReader(); 
reader.readEntries(gotList, onFail); 
} 

function gotList(entries) { 
var i; 
var fullPath = "/mnt/sdcard/Android/data/packagename/cache/"; 
for (i=0; i<entries.length; i++) { 
    if (entries[i].name.indexOf(".jpg") != -1) { 
     console(entries[i].fullPath); 
    } 
} 
} 

    function composeText(){ 
    var message1 = document.getElementById('message_body').value; 
    console.log(message1); 
    window.plugins.emailComposer.showEmailComposer(
      "Get an Estimate", 
      message1, 
      ["[email protected]"], 
      [], 
      [], 
      true, 
      [attachment link] 
     ); 
    //exit the app after clicking this button 
    navigator.app.exitApp(); 
    // navigator.camera.cleanup(onSuccess,fail); 
    // function onSuccess(){ 

    // } 

    // function fail(){ 

    // } 

    } 

    function onFail(message) { 
    alert('Failed because: ' + message); 
} 

    </script> 
    <style type="text/css"> 
li{ 
list-style: none; 
float:left; 
padding: 0 5 5 0 ; 
} 
    </style> 
</head> 
<body> 
    <h1>Get a Repair Estimate</h1> 

<div style="clear:both;"></div> 
Provide any details you want us to know(Optional): 
<ul> 
    <li> 
<textarea style="width:250px;height:250px;" name="message_body" id = 'message_body' placeholder="Add Notes here(if any)"></textarea> 
</li> 
<div style="clear:both;"></div> 
<li> 

     <button onclick="composeText();">Get Your Estimate</button> 
    </li> 
</body> 
</html> 

任何幫助。

回答

1

我爲此得到了解決方案。我無法理解爲我造成問題的phonegap的fileDirectory api。 我解決我的問題與下面的代碼:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { 
        fileSystem.root.getDirectory("MyAppFolder", { 
         create: true 
        }, 
     function(directory) { 
      console.log("Final 63" + directory.fullPath); 
      attachPaths = directory.fullPath; 
      var attachPath=attachPaths.slice(7,attachPaths.length); 
      var directoryReader = directory.createReader(); 
      directoryReader.readEntries(function(entries) { 
       var i; 
       for (i=0; i<entries.length; i++) { 
        console.log(entries[i].name); 
attachFile[i] =attachPath + "/" + entries[i].name; 
          } 
          console.log(attachFile); 
         }, 
         function (error) { 
          alert(error.code); 
         }); 

        }); 
       }, function(error) { 
        alert("can't even get the file system: " + error.code); 
       }); 

現在,我們可以通過attachFile到emailcomposer插件:

window.plugins.emailComposer.showEmailComposerWithCallback(null, 
        "Get an Estimate", 
        "Here is the mail body" 
        ["to"], 
        [cc], 
        [bcc], 
        true, 
        attachFile 
        ); 

我已經解決了它,請通過這個link關於我的完整的答案。我張貼我的答案,因爲我不想讓它解決問題。 我用這個emailcomposer plugin 希望它可以幫助別人。

+1

這真的很棒git鏈接,現在它解決了我的附件文本文件問題,我可以附加文件併發送成功,謝謝@ sur007 –