Social Share Plugin Cordova/Phonegap

坚强是说给别人听的谎言 提交于 2019-12-08 08:10:33

问题


I am using the Social Share Plugin for Cordova (https://github.com/bfcam/phonegap-ios-social-plugin), and I have everything working. What I was wondering was if there is a way to have an image you have taken or from your library shared instead of a predefined image. I already have the functions set up to take a picture and select an image from my library. Thanks.

I am using this with an ImageFilter plugin here is the code for my index.html page

<!DOCTYPE html>
<html>
  <head>
  <title></title>

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
    <meta charset="utf-8">

    <link rel="stylesheet" href="css/style.css">

    <!-- CORE -->
    <script src='js/core/cordova-1.6.0.js'></script>
    <script src='js/core/jQuery.js'></script>

    <!-- PLUGINS -->
   <script src='js/plugins/ImageFilter.js'></script>
   <script src='js/core/social.js'></script>

   <!-- OUR SCRIPTS -->
   <script src='js/init.js'></script>
   <script>
    window.plugins.social.available(function(avail) {
                                if (avail) {
                                // Show social widgets
                                } else {
                                // Social not supported
                                }
                                });
 </script>



 </head>
 <body onload="app.bodyLoad()">
    <div id="header"><img src="images/header.png" width="100%"></div>
<div id="wrapper">
    <div id="content">

        <!-- BUTTONS -->
        <div id="buttons">
            <div class="btn" id="camera" onClick="app.useCamera();">use camera</div>
            <div class="btn" id="roll" onClick="app.useRoll();">use library</div>
            <div class="btn" id="share" onClick="window.plugins.social.share('', '', 'www/images/filters/stark.png');">Share</div>
        </div>
        <!-- END BUTTONS -->

        <!-- IMAGE AREA -->
        <div id="imageArea">
            <!-- OUR IMAGE -->
            <div class="photo"></div>
            <!-- FILTERS -->
            <div id="filters">
                <div class="filter" id="none" onClick="filters.none(largeImage);">
                    <div class="filterIcon"><img src="images/filters/none.png" height="100%"></div>
                    <div class="filterTitle">none</div>
                </div>
                <div class="filter" id="sunnySide" onClick="filters.sunnySide(largeImage);">
                    <div class="filterIcon"><img src="images/filters/sunnySide.png" height="100%"></div>
                    <div class="filterTitle">sunnySide</div>
                </div>
                <div class="filter" id="worn" onClick="filters.worn(largeImage);">
                    <div class="filterIcon"><img src="images/filters/worn.png" height="100%"></div>
                    <div class="filterTitle">worn</div>
                </div>
                <div class="filter" id="vintage" onClick="filters.vintage(largeImage);">
                    <div class="filterIcon"><img src="images/filters/vintage.png" height="100%"></div>
                    <div class="filterTitle">vintage</div>
                </div>
                <div class="filter" id="stark" onClick="filters.stark(largeImage);">
                    <div class="filterIcon"><img src="images/filters/stark.png" height="100%"></div>
                    <div class="filterTitle">stark</div>
                </div>
            </div>
        </div>
        <!-- END IMAGE AREA -->


      </div>
  </div>
</body> 
</html>

Here is the js from the image filter plugin that allows me to select an image from my library or tak a picture with the camera

var largeImage;

var app = {
    bodyLoad: function () {
        document.addEventListener("deviceready", app.deviceReady, false);
    },
    deviceReady: function () {
        app.init();
    },
    init: function () {

    },
    useCamera: function () {
       navigator.camera.getPicture(app.onCameraSuccess, app.onCameraFail, {
          quality: 100,
        destinationType: Camera.DestinationType.FILE_URI,
        sourceType: Camera.PictureSourceType.CAMERA,
        //allowEdit : true,
        encodingType: Camera.EncodingType.JPEG,
        targetWidth: 910,
        targetHeight: 910,
        saveToPhotoAlbum: false
    });
},
useRoll: function () {
    navigator.camera.getPicture(app.onCameraSuccess, app.onCameraFail, {
        quality: 100,
        destinationType: Camera.DestinationType.FILE_URI,
        sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
        encodingType: Camera.EncodingType.JPEG,
        targetWidth: 910,
        targetHeight: 910,
        saveToPhotoAlbum: false
    });
},
onCameraSuccess: function (imageURI) {

    largeImage = imageURI;
    $(".photo").html("<img src='" + imageURI + "'>");
    $(".photo").show();

},
onCameraFail: function (msg) {
    console.log("ERROR! -" + msg);
}
};

var filters = {
    none: function (imageURI) {
        plugins.ImageFilter.none(filters.rendered, {
           image: imageURI,
           save: 'false',
       });
    },
    sunnySide: function (imageURI) {
        plugins.ImageFilter.sunnySide(filters.rendered, {
            image: imageURI,
            save: 'false'
        });
    },
    worn: function (imageURI) {
        plugins.ImageFilter.worn(filters.rendered, {
            image: imageURI,
            save: 'false'
        });
    },
    vintage: function (imageURI) {
        plugins.ImageFilter.vintage(filters.rendered, {
            image: imageURI,
            save: 'false'
        });
    },
    stark: function (imageURI) {
        plugins.ImageFilter.stark(filters.rendered, {
            image: imageURI,
            save: 'false'
        });
    },
    rendered: function (msg) {

        $(".photo").html("<img src='" + msg + "'>");
    }
}

I am struggling with what parameter to use to replace 'www/image/local_image.jpg' in order for it to share the image that I have taken or selected from the library.


回答1:


The readme file for that plugin says you can share things like this:

window.plugins.social.share('This is the message you want to share', 'http://someurl.com', 'www/image/local_image.jpg');

You should therefore be able to share any image that you have, just replace 'www/image/local_image.jpg' with the path to the image you want to share. If you already have code to take a picture or select an image from your library, this should be trivial.



来源:https://stackoverflow.com/questions/16441296/social-share-plugin-cordova-phonegap

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!