Angularjs 第二个html页面上的Phonegap.js
我的phonegap应用程序中基本上有两个页面,我正在使用PGB(index.html和main.html)构建,这两个页面都使用angular.js。Index.html是应用程序的登录名,之后会重定向到main.html。我所有的插件和phonegap.js都被很好地注入到main中,但是没有一个内联js(doc-ready、device-ready、windowload上的警报)被触发,更不用说phonegap.js也被加载了 如有任何建议,将不胜感激 脚本包括:Angularjs 第二个html页面上的Phonegap.js,angularjs,cordova,Angularjs,Cordova,我的phonegap应用程序中基本上有两个页面,我正在使用PGB(index.html和main.html)构建,这两个页面都使用angular.js。Index.html是应用程序的登录名,之后会重定向到main.html。我所有的插件和phonegap.js都被很好地注入到main中,但是没有一个内联js(doc-ready、device-ready、windowload上的警报)被触发,更不用说phonegap.js也被加载了 如有任何建议,将不胜感激 脚本包括: <script s
<script src="phonegap.js"></script>
<script src="cdv-plugin-fb-connect.js"></script>
<script src="facebook-js-sdk.js"></script> <script>alert("inside pg");</script>
<script src="childbrowser.js"></script>
<script src="js/jquery.js"></script>
<script src="js/angular.min.js"></script>
<script>alert("here");</script>
<script src="js/controllers.js"></script>
<script src="js/klass.min.js"></script>
<script src="js/code.photoswipe.jquery-3.0.5.min.js"></script>
<script src="js/maskedInput.js" type="text/javascript"></script>
<script src="js/jquery.joyride.js"></script>
<script src="js/jquery.fancybox.pack.js"></script>
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script>
警报(“内部pg”);
警报(“此处”);
脚本:
alert("p2 adding")
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap is loaded and it is now safe to make calls PhoneGap methods
//
function onDeviceReady() {
alert("main.html: device is ready");
}
$(window).load(function(){
alert("window.load happening");
})
</script>
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-42023187-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-42023187-1', 'openvino.com');
ga('send', 'pageview');
</script>
<script type="text/javascript">
var objectToLike = window.location;
var FBactivated = false;
FB.init({
appId : '659381964079214', // App ID
channelURL : '', // Channel File, not required so leave empty
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true,
xfbml : true // parse XFBML
});
FB.Event.subscribe('auth.authResponseChange', function(response) {
// Here we specify what we do with the response anytime this event occurs.
if (response.status === 'connected') {
getFriends();
testAPI();
FBactivated = true;
}
});
function getFriends() {
var fbUserIDs = []
FB.api('/me/friends', function(response) {
if(response.data) {
$.each(response.data,function(index,friend) {
var id = friend.id;
fbUserIDs.push(id);
});
var dataString = "fbUserIDs="+fbUserIDs.join();
$.ajax({
type: "POST",
data: dataString,
async: false,
url: "http://m.openvino.com/Scripts/faveMatch.php"
}).done(function(data){
console.log(data);
window.localStorage.setItem("fbFriends", data);
console.log("Saved");
});
} else {
alert("Error!");
}
});
}
function testAPI() {
FB.api('/me', function(response) {
//console.log(response, response.email);
var dataString2 = "id=" + response.id;
dataString2 += "&first_name=" + response.first_name;
dataString2 += "&last_name=" + response.last_name;
dataString2 += "&email=" + response.email;
console.log(dataString2);
$.ajax({
type: "POST",
url: "http://m.openvino.com/Scripts/fbconnect.php",
data: dataString2
}).done(function(data){
var dataJSON = $.parseJSON(data);
if (dataJSON[0].STATUS == "FAILURE") {
//console.log(dataJSON[0].MESSAGE);
return false;
} else if (dataJSON[0].STATUS == "SUCCESS") {
window.localStorage.setItem('email',dataJSON[0].COOKIE.email);
window.localStorage.setItem('password',dataJSON[0].COOKIE.password);
window.localStorage.setItem('name_first',dataJSON[0].COOKIE.name_first);
window.localStorage.setItem('name_last',dataJSON[0].COOKIE.name_last);
window.localStorage.setItem('uID',dataJSON[0].COOKIE.uID);
window.localStorage.setItem('phone',dataJSON[0].COOKIE.phone);
window.localStorage.setItem('firstTime',dataJSON[0].COOKIE.firstTime);
}
});
});
}
function fbLogout() {
if (FBactivated) {
try {
FB.logout(function(response) {
window.location.href = "index.html";
});
} catch (err) {
window.location.href = "index.html";
}
} else {
window.location.href = "index.html";
}
}
$(document).ready(function() {
alert("document.ready loaded");
$("#logmeout").click(function(e){
e.preventDefault();
window.localStorage.clear();
fbLogout();
return false;
});
$('.back_btn').click(function(e) {
$('.profile_menu').hide();
history.back();
});
$(document).click(function(e) {
$('.profile_menu').hide();
})
$('.profile_btn').click(function(e) {
$('.profile_menu').slideToggle();
e.stopPropagation();
e.preventDefault();
return false;
});
$('.profile_menu a').each(function() {
$(this).click(function(e) {
$('.profile_menu').hide();
});
});
});
警报(“p2添加”)
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
//PhoneGap已加载,现在可以安全地调用PhoneGap方法
//
函数ondevicerady(){
警报(“main.html:设备已就绪”);
}
$(窗口)。加载(函数(){
警报(“window.load事件”);
})
var _gaq=_gaq | |[];
_gaq.push([''设置帐户','UA-42023187-1']);
_gaq.push([''u trackPageview']);
(功能(){
var ga=document.createElement('script');ga.type='text/javascript';ga.async=true;
ga.src=('https:'==document.location.protocol?'https://ssl' : 'http://www“)+”.google analytics.com/ga.js';
var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s);
})();
(函数(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]| |函数(){
(i[r].q=i[r].q | |[]).push(参数)},i[r].l=1*新日期();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(窗口,文档,“脚本”,“www.google-analytics.com/analytics.js”,“ga”);
ga(“创建”、“UA-42023187-1”、“openvino.com”);
ga(‘发送’、‘页面浏览’);
var objectToLike=window.location;
fbvar=false;
FB.init({
appId:'659381964079214',//应用ID
channelURL:“”,//通道文件,不是必需的,因此保留为空
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
真的,
xfbml:true//解析xfbml
});
FB.Event.subscribe('auth.authResponseChange',函数(响应){
//在这里,我们指定在发生此事件时如何处理响应。
如果(response.status===“已连接”){
交朋友();
testAPI();
fB=真;
}
});
函数getFriends(){
var fbUserIDs=[]
FB.api('/me/friends',函数(响应){
if(response.data){
$.each(响应、数据、函数(索引、朋友){
var id=friend.id;
fbuserid.push(id);
});
var dataString=“fbUserIDs=“+fbUserIDs.join();
$.ajax({
类型:“POST”,
数据:dataString,
async:false,
url:“http://m.openvino.com/Scripts/faveMatch.php"
}).完成(功能(数据){
控制台日志(数据);
window.localStorage.setItem(“fbFriends”,数据);
控制台日志(“已保存”);
});
}否则{
警报(“错误!”);
}
});
}
函数testAPI(){
FB.api('/me',函数(响应){
//console.log(响应、响应、电子邮件);
var dataString2=“id=”+response.id;
dataString2+=“&first_name=“+response.first_name;
dataString2+=“&last_name=“+response.last_name;
dataString2+=“&email=“+response.email;
console.log(dataString2);
$.ajax({
类型:“POST”,
url:“http://m.openvino.com/Scripts/fbconnect.php",
数据:dataString2
}).完成(功能(数据){
var dataJSON=$.parseJSON(数据);
如果(dataJSON[0]。状态==“失败”){
//console.log(dataJSON[0].MESSAGE);
返回false;
}else if(dataJSON[0]。状态==“成功”){
window.localStorage.setItem('email',dataJSON[0].COOKIE.email);
window.localStorage.setItem('password',dataJSON[0].COOKIE.password);
window.localStorage.setItem('name\u first',dataJSON[0].COOKIE.name\u first);
window.localStorage.setItem('name\u last',dataJSON[0].COOKIE.name\u last);
window.localStorage.setItem('uID',dataJSON[0].COOKIE.uID);
window.localStorage.setItem('phone',dataJSON[0].COOKIE.phone);
window.localStorage.setItem('firstTime',dataJSON[0].COOKIE.firstTime);
}
});
});
}
函数fbLogout(){
如果(激活){
试一试{
FB.注销(功能(响应){
window.location.href=“index.html”;
});
}捕捉(错误){
window.location.href=“index.html”;
}
}否则{
window.location.href=“index.html”;
}
}
$(文档).ready(函数(){
警报(“document.ready loaded”);
$(“#logmeout”)。单击(函数(e){
e、 预防默认值();
window.localStorage.clear();
fbLogout();
返回false;
});
$('.back_btn')。单击(函数(e){
$('.profile_menu').hide();
历史。返回();
});
$(文档)。单击(函数(e){
$('.profile_menu').hide();
})
$('.profile_btn')。单击(函数(e){
$('.profile_menu')。滑动切换();
e、 停止传播();
e、 预防默认值();
返回false;
});
$('.profile_menu a')。每个(函数(){
$(此)。单击(函数(e){
$('.profile_menu').hide();
});
});
});
HTML:
我用一个简单但令人沮丧的解决方案修复了它:你必须把你的多页应用程序变成一页应用程序。不幸的是,phonegap宣传您可以使用HTML、CSS和JS并以本机方式构建它。第二个页面上加载的所有.js都无法工作,直到我将登录改为部分登录,并在路由上胡闹
<body ng-app="OpenVino">
<div id="fb-root"></div>
<div class="header-wrap">
<header>
<div ng-show="(page != 'list')" class="back_btn"></div>
<a href="#" onclick="launchBrowser(http://facebook.com)"><img src="imgs/logo_only.png" alt="OpenVino" /></a>
<div class="profile_btn"></div>
</header>
</div>
<div class="profile_menu">
<a href="#/users/">My Favorites</a>
<a href="#/aboutus/">Contact OpenVino</a>
<a href="#/lifestyle/">Images</a>
<a href="#" id="logmeout">Logout</a>
</div>
<div class="content {{page}}" ng-view></div>