как реализовать Facebook с помощью плагина tech.sarathdr для телефона Android?

Я использовал этот плагин для реализации fb, sms и электронной почты. Я использую cordova2 .1.0

ВСЕ три не работали. Поэтому я вносил изменения. Теперь смс и электронная почта работают.

код Java

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;

import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;


public class SocialShare extends Plugin {

    private String callback;
    public String smsCopy = ""; 

    @Override
    public PluginResult execute(String action, JSONArray args, String callbackId) {

        try
        {
            if (action.equals("startSmsActivity")) {

                JSONObject obj = args.getJSONObject(0);
                String type = obj.has("message") ? obj.getString("message") : "";
                startSmsActivity(type ); 
            }
            else if( action.equals("startEmailActivity") ) 
            {
                JSONObject obj = args.getJSONObject(0);
                String msg = obj.has("message") ? obj.getString("message") : "";
                String subject = obj.has("subject") ? obj.getString("subject") : "";

                startEmailActivity(msg, subject );
            }
            else if( action.equals("startSocialActivity") ) 
            {
                JSONObject obj = args.getJSONObject(0);
                String msg = obj.has("message") ? obj.getString("message") : "";

                startSocialActivity(msg);
            }

        }
        catch (JSONException e) {
            e.printStackTrace();
            return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
        }

        PluginResult mPlugin = new PluginResult(PluginResult.Status.NO_RESULT);
        mPlugin.setKeepCallback(true);
        this.callback = callbackId;
        return mPlugin;
    }

    public void startSmsActivity( String msg ) {

        Uri uri = Uri.parse("smsto:"); 
        Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
        it.putExtra("sms_body",msg ); 
        cordova.getActivity().startActivity(it);

    }

    public void startEmailActivity ( String msg, String subject )
    {
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

        // emailIntent.setType("text/plain");
        emailIntent.setType("message/rfc822");
        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject );  
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, msg );  
        // this.ctx.startActivity(emailIntent);
        cordova.getActivity().startActivity(emailIntent);


    }

    @SuppressWarnings("deprecation")
    public void startSocialActivity ( String msg )
    {
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        emailIntent.setType("text/plain");
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, msg );

        cordova.getActivity().getPackageManager();
    }




    public void onActivityResult(int reqCode, int resultCode, Intent data) {
        JSONObject smsObj = new JSONObject();
        try {
            smsObj.put("msg", "done");


        } catch (JSONException e) {
            e.printStackTrace();
        }

        this.success(new PluginResult(PluginResult.Status.OK,smsObj
                ), this.callback);
    }
}

Код JavaScript

 var SocialShare = function() {};

SocialShare.prototype.sms = function(param, successCallback, failCallback) {

    function success(args) {
        successCallback(args);
    }

    function fail(args) {
        failCallback(args);
    }

    return PhoneGap.exec(function(args) {
        success(args);
    }, function(args) {
        fail(args);
    }, 'SocialShare', 'startSmsActivity', [param]);
};


 SocialShare.prototype.email = function(param, successCallback, failCallback) {

    function success(args) {
        successCallback(args);
    }

    function fail(args) {
        failCallback(args);
    }

    return PhoneGap.exec(function(args) {
        success(args);
    }, function(args) {
        fail(args);
    }, 'SocialShare', 'startEmailActivity', [param]);
};


  SocialShare.prototype.social = function(param, successCallback, failCallback) {

    function success(args) {
        successCallback(args);
    }

    function fail(args) {
        failCallback(args);
    }

    return PhoneGap.exec(function(args) {
        success(args);
    }, function(args) {
        fail(args);
    }, 'SocialShare', 'startSocialActivity', [param]);
};

html-вызов функций

<script type="text/javascript" charset="utf=8" src="cordova-2.1.0.js"></script> 
<script type="text/javascript" charset="utf-8" src="social.js"></script>
<script type="text/javascript" charset="utf-8" src="twitter.js"></script>
<script type="text/javascript" charset="utf-8">

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() 
{
    window.SocialShare = new SocialShare(); 

function sendFacebook()
{

    window.SocialShare.social({message:''},
            function(msg) {

            },
            function(fail) {

            }
        );           
}

function sendEmail()
{

        window.SocialShare.email({message:'Email body', subject: "Email Subject"},
            function(msg) {

            },
            function(fail) {

            }
        );

    }


    function sendSms()
    {

         SocialShare.sms= function(param, successCallback, failCallback) {

    function success(args) {
        successCallback(args);
    }

    function fail(args) {
        failCallback(args);
    }

    return PhoneGap.exec(function(args) {
        success(args);
    }, function(args) {
        fail(args);
    }, 'SocialShare', 'startSmsActivity', [param]);
    };
         window.SocialShare.sms({message:'Message '},
            function(msg) {

            },
            function(fail) {
            }
        );

    }   


    function twitter()
    {
        window.plugins.twitter.composeTweet(
         function(){
            console.log("Twitter working!!! yahooooo");
         },
         function(){
            alert("We have a problem with the plugin");
         },
         "tweet!!"
    );          
    }

МОИ сомнения - в чем причина того, что facebook не подключается.


person user    schedule 01.06.2013    source источник
comment
вы проверяете в эмуляторе или телефоне?   -  person MSTdev    schedule 06.06.2013
comment
Я проверяю устройство. Спасибо. Я внес некоторые изменения в java-код... теперь он работает, но теперь... он открывает все способы обмена, доступные на устройстве. ОНО НЕ ОТКРЫВАЕТСЯ ТОЛЬКО FACEBOOK, ПОСКОЛЬКУ Я ХОЧУ, ЧТОБЫ ОНО ОТКРЫЛОСЬ ТАК. ЧТО МНЕ ДЕЛАТЬ??   -  person user    schedule 06.06.2013
comment
нет, вы не можете отделить его, если используете плагин общего доступа.   -  person MSTdev    schedule 06.06.2013
comment
@Imran, как я могу подключиться к FB через такие веб-сайты?   -  person user    schedule 06.06.2013
comment
Обратитесь к API javascript, если он работает. developers.facebook.com/docs/reference/dialogs/feed   -  person MSTdev    schedule 06.06.2013
comment
Вы сделали Alone FACEBOOK ?   -  person MSTdev    schedule 06.06.2013
comment
@Imran Нет, я не так занят, пытаясь исправить ошибку Android 2.3 для position:fixed. Пытаюсь реализовать iscroll. вот оно< /а>   -  person user    schedule 07.06.2013
comment
привет, я попробовал по вашей инструкции, я мог получить только тему и тело письма, не смог найти место для добавления почты получателя, смс, facebook не работают, я использую Cordova 2.2.jar, вы можете мне помочь? @449   -  person DD.    schedule 06.09.2013