将 Twitter 数字与 cordova/phonegap 应用程序集成?

Integrate twitter digits with a cordova/phonegap app?

Digit 不久前发布了它的 Web SDK,但是我在将它与我的 phonegap/cordova 应用程序集成时遇到了一些问题。

我试过使用 inappbrowser 插件,但由于 digits 使用 postMessage api 在 windows 之间传输数据,而且 apache 似乎永远不会支持 cordova/phonegap(或在至少他们会永远服用 - https://issues.apache.org/jira/browse/CB-4897) 这似乎不太有效。

我知道数字团队可能正在研究与 phonegap/cordova 应用程序集成的解决方案,但目前有 none 并且没有迹象表明何时会出现。

是否有将 phonegap/cordova 与 Twitter 数字集成的解决方案?

我努力工作并研究了许多不同的东西,其中大部分都把我带到了死胡同。

TJ VanToll 使用 inappbrowser 插件向 postMessage API 发布了一个很棒的 work around,但是这对我的 android 似乎不太适用(我还没有尝试过iphone)。 TJ 的解决方案启发了我对 oAuth with digits-cordova 的解决方案。

您可以在 https://github.com/yangli1990/digits-cordova.git

找到我的解决方案

或者直接使用 bower 安装

请记住,如果结构团队想出一种更原生的方式将数字与 cordova/phonegap 应用程序集成,则此解决方案将会过时。

bower install digits-cordova
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git

/* Optional cordova plugins */
cordova plugin add com.simonmacdonald.telephonenumber
cordova plugin add com.rjfun.cordova.sms

这个库运行良好,因为您还可以选择允许您的应用自动填充 phone 号码和位置,还可以拦截短信以自动继续。

在您的 html 中确保您有适当的 javascript 链接

<!-- optional -->
<script type="text/javascript" src="bower_components/telephonenumber.js"></script>
<script type="text/javascript" src="bower_components/SMS.js"></script>

<!-- required -->
<script type="text/javascript" src="bower_components/inappbrowser.js"></script>
<script type="text/javascript" src="bower_components/digitsCordova.js"></script>

在你的app.js

function openDigits(){
  var digits = new DigitsCordova('gmoaaZhEG88hMQUdpWHnF1IAz'); //Replace with your own consumerKey
    digits.open()
        .successCallback(function(loginResponse){
            var oAuthHeaders = loginResponse.oauth_echo_headers;
            var verifyData = {
                authHeader: oAuthHeaders['X-Verify-Credentials-Authorization'],
                apiUrl: oAuthHeaders['X-Auth-Service-Provider']
            };

            $.post('/verify', verifyData)
                .done(function(){ window.reload(); });
        }).failCallback(function(error){
            //error
        }).errorCallback(function(error){
            //error
        })
}

openDigits();

您可以在 github 页面阅读有关 api 的信息,您可以选择一些选项来打开或关闭自动填充和 smsIntercept。

你的作品很棒。因为它很难实施。我试过 API 但效果不佳。即有些工作但有些没有。比如当我专注于文本框时不打开键盘而不打开国家/地区的弹出菜单....如果你给我一些建议欢迎...