gpt4 book ai didi

android - Cordova 4.1.2 推特整合

转载 作者:行者123 更新时间:2023-11-29 15:12:07 25 4
gpt4 key购买 nike

如何为 cordova 4.1.2 集成 Twitter 登录,因为现在 childBrowser 已弃用,我们无法使用 this演示。任何人都可以帮助我吗??

最佳答案

经过 2 天的研究,我终于得到了这个解决方案。1)你需要安装inappbrowser插件。2) 以下是我使用 Twitter 登录的 index.html

<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<title>Hello World</title>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="js/codebird.js"></script>
<script type="text/javascript" charset="utf-8" src="js/jquery-1.11.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="js/jsOAuth-1.3.6.js"></script>
<script type="text/javascript" charset="utf-8">
window.onerror = function(error, url, line) {
alert(error + ' on line : ' + line + ' -- ' + url);
};

function onBodyLoad(){
alert("bodyLoad");
document.addEventListener("deviceready", onDeviceReady, false);
}

function onDeviceReady() {
alert("device ready");
var root = this;
/*cb=window.open();
if(!localStorage.getItem(twitterKey)){
$("#loginBtn").show();
$("#logoutBtn").hide();
}
else {
$("#loginBtn").hide();
$("#logoutBtn").show();
}

if (cb != null) {
cb.onLocationChange = function(loc){ root.locChanged(loc); };
cb.onClose = function(){root.onCloseBrowser()};
cb.onOpenExternal = function(){root.onOpenExternal();};
}*/
}

function onCloseBrowser() {
console.log("onCloseBrowser!");
}

function locChanged(loc) {
console.log("locChanged!");
}

function onOpenExternal() {
console.log("onOpenExternal!");
}
</script>
<script>
// GLOBAL VARS
var oauth; // It Holds the oAuth data request
var requestParams; // Specific param related to request
var options = {
consumerKey: 'consumer_key', // YOUR Twitter CONSUMER_KEY
consumerSecret: 'customer_secret', // YOUR Twitter CONSUMER_SECRET
callbackUrl: "http://www.example.com/" }; // YOU have to replace it on one more Place
var twitterKey = "twtrKey"; // This key is used for storing Information related

var Twitter = {
init:function(){


// we have no data for save user
oauth = OAuth(options);
oauth.get('https://api.twitter.com/oauth/request_token',
function(data) {
requestParams = data.text;
cb=window.open('https://api.twitter.com/oauth/authorize?'+data.text,'_blank', 'location=no'); // This opens the Twitter authorization / sign in page
cb.addEventListener('loadstop', function(loc){//alert('stop: ' + loc.url);
Twitter.success(loc);
});
},
function(data) {
console.log("ERROR: "+data);
}
);

},
success:function(loc){
if (loc.url.indexOf("http://www.example.com/?") >-1)
{
// Parse the returned URL
var index, verifier = '';
var params = loc.url.substr(loc.url.indexOf('?') + 1);

params = params.split('&');
for (var i = 0; i < params.length; i++) {
var y = params[i].split('=');
if(y[0] === 'oauth_verifier') {
verifier = y[1];
}
}
oauth.get('https://api.twitter.com/oauth/access_token?oauth_verifier='+verifier+'&'+requestParams,
function(data) {
var accessParams = {};
var qvars_tmp = data.text.split('&');
for (var i = 0; i < qvars_tmp.length; i++) {
var y = qvars_tmp[i].split('=');
accessParams[y[0]] = decodeURIComponent(y[1]);
}
// alert(verifier)

$('#oauthStatus').html('<span style="color:green;">Success!</span>');
$('#stage-auth').hide();
$('#stage-data').show();
oauth.setAccessToken([accessParams.oauth_token, accessParams.oauth_token_secret]);

// Saving token of access in Local_Storage
var accessData = {};
accessData.accessTokenKey = accessParams.oauth_token;
accessData.accessTokenSecret = accessParams.oauth_token_secret;

// Configuring Apps LOCAL_STORAGE
console.log("TWITTER: Storing token key/secret in localStorage");

oauth.get('https://api.twitter.com/1.1/account/verify_credentials.json?skip_status=true',
function(data) {
// alert('key'+twitterKey);
var entry = JSON.parse(data.text);
console.log("TWITTER USER: "+entry.screen_name);
$("#welcome").show();
document.getElementById("welcome").innerHTML="welcome " + entry.screen_name;
successfulLogin();
alert("login success");
},
function(data) {
console.log("ERROR: " + data);
alert("error" + data);
}
);

// Now we have to close the child browser because everthing goes on track.

cb.close();
},
function(data) {
// alert('rr');
console.log(data);


}
);
}
},

}

function done(){
$("#tweet").val('');
}


function successfulLogin(){
$("#loginBtn").hide();
$("#logoutBtn,#tweet,#tweeter,#tweetBtn,#tweetText").show();

}


</script>

</head>
<body onload="onBodyLoad()">
<h4>Oodles Twitter App</h4>

<table border="1">
<tr>
<th>Login using Twitter</th>
<th>
<button id="loginBtn" onclick="Twitter.init()">Login</button>
</th>
</tr>
<tr><td colspan="2"><div id="welcome">Please Login to use this app</div></td></tr>
</table>
</body>

关于android - Cordova 4.1.2 推特整合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30098467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com