6

我正在开发一个移动应用程序(通过jQuery MobileAnd PhoneGap)。

如何将Facebook,Twitter和添加Google+ Sharing buttons到我的应用程序中?有没有 API 或者这么简单的方法?(我的应用程序的服务器端使用ASP.NET MVC 4.)

有目的的方式是服务器端还是客户端并不重要。

(例如 Zite 应用有分享按钮)

编辑:如果您的目的方法需要打开弹出窗口,将PhoneGap处理此弹出窗口并在共享后将其关闭,以便用户可以回到我的应用程序?

以及如何保存用户的凭据,以便用户不想每次都登录?(凭证应该保存在客户端,通过 cookie 或其他东西......(我们可以允许从 和保存PhoneGapcookie吗?))FacebookTwitterGoogle

4

3 回答 3

9

您的要求(在您的编辑之后)非常复杂,但这里有一些提示。

对于 Facebook,您可以使用PhoneGap Facebook Platform Plugin或使用Javascript SDK。您需要向他们注册您的应用并获取应用 ID。由于 FB auth 有很多步骤,请研究他们的示例并寻找一个好的教程

Twitter 提供了类似的身份验证 API,但它需要一些服务器端代码才能使其工作。我从未使用过谷歌的,但我认为他们也有一个相当简单的 API。所有这些 API 的凭据都保存在 PhoneGapUIWebView的 cookie 存储中,因此您实际上不必管理它。

对于 PhoneGap 中的弹出窗口,您可以使用ChildBrowser 插件

这是我用于按钮的内容。页面加载完成后在客户端调用。由于它们需要一段时间来加载和定位自己,因此使用 4 秒延迟给它们时间,然后它们会淡入。

演示: jsFiddle

脚本

function showSocialButtons() {

    var html =
              '<div id="social-buttons" class="fade">'
            + '<div class="fb-like" data-href="YOUR_URL" data-send="true" data-layout="box_count" data-width="50" data-show-faces="true" data-colorscheme="dark"></div>'
            + '<div class="g-plusone-frame"><div class="g-plusone" data-size="tall" data-href="YOUR_URL"></div></div>'
            + '<a href="https://twitter.com/share" class="twitter-share-button" data-url="YOUR_URL" data-text="YOUR_APP_DESCRIPTION" data-count="vertical">Tweet</a>'
            + '<div id="fb-root"></div>'
            + '</div>';
    document.getElementById( 'viewport' ).insertAdjacentHTML( 'beforeEnd', html );

    var script = document.createElement( 'script' );
    script.async = true;
    script.src = document.location.protocol + '//connect.facebook.net/en_US/all.js#xfbml=1&appId=YOUR_FB_APP_ID';
    document.getElementById( 'fb-root' ).appendChild( script );

    script = document.createElement( 'script' );
    script.async = true;
    script.src = document.location.protocol + '//platform.twitter.com/widgets.js';
    document.getElementById( 'social-buttons' ).appendChild( script );

    script = document.createElement( 'script' );
    script.async = true;
    script.src = document.location.protocol + '//apis.google.com/js/plusone.js';
    document.getElementById( 'social-buttons' ).appendChild( script );

    window.setTimeout( function () {

        document.getElementById( 'social-buttons' ).removeAttribute( 'class' );

    }, 4000 ); //4 second delay

};

CSS

#social-buttons {
    height: 300px;
    transition:             opacity 1000ms ease;
        -moz-transition:    opacity 1000ms ease;
        -ms-transition:     opacity 1000ms ease;
        -o-transition:      opacity 1000ms ease;
        -webkit-transition: opacity 1000ms ease;
    width: 90px;
}

.fb-like,
.g-plusone-frame {
    margin: 10px 0 10px 3px;   
}

.g-plusone-frame {
    display: inline-block;
}

.twitter-share-button {
    margin: 10px 0;
}

.fade {
    opacity: 0 !important;
}

HTML

<div id="viewport"></div>
于 2012-07-24T22:16:51.963 回答
3

查看ShareThis。它允许您轻松地将这些按钮添加到您的应用程序中。

于 2012-07-24T22:01:06.040 回答
3

我目前正在使用这个插件在 Cordova 2.5+ 中共享选项。

它适用于 Android 和 iOS

于 2014-02-27T13:45:17.243 回答