我努力工作并研究了许多不同的东西,其中大部分都让我陷入了死胡同。
TJ VanToll 使用 inappbrowser 插件向 postMessage API 发布了一个很棒的 work around,但是这似乎不适用于我的 android(我没有尝试过 iphone)。 TJ 的解决方案启发了我使用 digits-cordova 的 oAuth 解决方案。
你可以在https://github.com/yangli1990/digits-cordova.git找到我的解决方案
或者干脆用 bower 安装
请记住,如果 Fabrics 团队想出一种更原生的方式将数字与 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
这个库运行良好,因为您还可以选择允许您的应用自动填充电话号码和位置,还可以拦截 SMS 以自动继续。
在你的 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 的一些选项。