D3图表未在Android混合应用程序中显示
D3 Graph Not Display in Android Hybrid App
我在Android混合应用程序中使用D3 Graphs。当这个应用程序在浏览器中运行时,它显示出完美的结果,但当我为android移动设备设置并在Emulator上测试时,它不会显示图表,在LogCat中它会显示这个错误,但当这个应用在chrome、firefox 中运行时不会出现这个错误
file:///android_asset/www/sm_libraries/sm_custome/graphClass.js: Line 21 : ReferenceError: Can't find variable: Gauge
以下是的代码示例
HTML
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>SHA</title>
<link rel="stylesheet" href="sm_styles/sm_jquery/jquery.mobile.css"/>
<script src="sm_libraries/sm_jquery/jquery.js"></script>
<script src="sm_libraries/sm_jquery/jquery.mobile.js"></script>
<script src="sm_libraries/sm_angular/angular.js"></script>
<script src="sm_libraries/sm_angular/jquery-mobile-angular-adapter.js"></script>
<script src="sm_libraries/sm_angular/sm_controllers/sm_report_controller.js"></script>
<link href="sm_styles/sm_custome/style.css" rel="stylesheet" type="text/css" />
<script src="includes/footer.js"></script>
</head>
<body ng-app="myApp">
<div data-role="page" id="cb_firstReport" ng-controller="reportModule">
<div data-role="header" data-position="fixed">
<a style="display:none" href="#main" data-role="button" data-iconpos="notext" data-icon="home">Home</a>
<h3>Calories Burn Report</h3>
<a data-role="button" data-rel="back" data-iconpos="notext" data-icon="back">Back</a>
</div>
<div data-role="content">
<div class="row-fluid">
<span style="float:left"><a ng-click="cb_first_Prev()" data-role="button" data-iconpos="notext" data-icon="back">Pervious</a></span>
<span style="float:right"><a ng-click="cb_first_Next()" data-role="button" data-iconpos="notext" data-icon="forward">Next</a></span>
</div>
<span class="datesetter" id="cb_first_ViewDate"></span>
<div id="firstReport" style="margin-top:20%; margin-left:40%">
<span id="cb_graphGaugeContainer"></span>
</div>
<div>
<span class="datesetter"><strong>Today, You Burn:: </strong>{{ 1425 }}<strong> Calories</strong></span>
</div>
</div>
</div>
<script type="text/javascript" charset="utf-8" src="includes/D3Lib/d3.js"></script>
<script type="text/javascript" charset="utf-8" src="includes/D3Lib/gauge.js"></script>
<script type="text/javascript" src="sm_libraries/sm_custome/graphClass.js"></script>
</body>
</html>
显示错误的Js类是
// JavaScript Document
var GraphClass =
{
gauges:[],
cal:0,
createGauge:function(name, label, min, max)
{
var config =
{
size: 120,label: label,min: undefined != min ? min : 0,max: undefined != max ? max : 100,minorTicks: 5
}
var range = config.max - config.min;
config.yellowZones = [{ from: config.min + range*0.75, to: config.min + range*0.9 }];
config.redZones = [{ from: config.min + range*0.9, to: config.max }];
GraphClass.gauges[name] = new Gauge(name + "GaugeContainer", config); // **In this line it shows error in eclipse emulator but correct in browsers**
GraphClass.gauges[name].render();
},
createGauges:function()
{
GraphClass.createGauge("cb_graph", "Calories Burn",0,2600);
GraphClass.createGauge("cn_graph", "Calories Gain",0,localStorage.getItem("DailyRequiredCalories"));
},
updateGauges:function()
{
for (var key in GraphClass.gauges)
{
var value = GraphClass.getRandomValue(GraphClass.gauges[key]);
GraphClass.gauges[key].redraw(value);
}
},
getRandomValue:function(gauge)
{
var overflow = 0; //10;
console.log(gauge.config.min+" - "+overflow+" + ( "+gauge.config.max+" - "+gauge.config.min+" + "+overflow*2+")*"+Math.random());
//return gauge.config.min - overflow + (gauge.config.max - gauge.config.min + overflow*2) * Math.random();
return GraphClass.cal;
},
initialize:function(cal)
{
$('#cb_graphGaugeContainer').empty();
$('#cn_graphGaugeContainer').empty();
//alert(cal);
GraphClass.cal = cal;
GraphClass.createGauges();
GraphClass.updateGauges();
}
}
Android路径是相对于file://android_asset/...以下链接将有所帮助。
如何从资产文件中获取URI?
相关文章:
- 如何通过ibmworklight中的sql适配器从db2中检索或显示html页面上的数据?android混合应用程序开发
- D3图表未在Android混合应用程序中显示
- Angular:如何在外部浏览器中打开Angular变量-appgyver混合应用程序
- 服务器使用混合应用程序发送事件
- 在混合应用程序开发中使用本地存储;本地数据库“-危险或有用
- Sqlite在混合应用程序中不工作
- 无法通过salesforce混合应用程序(forceios)调用RESTAPI
- android混合应用程序与数据库的离线连接
- 如何使用业力和ng-scenario测试Angular/Umbraco混合应用程序
- 现在是否可以在Android手机中使用HTML5或混合应用程序读取智能卡
- window.onload() 不会在混合应用程序中触发
- 不能在 AngularJs 混合应用程序上的 youtube api v3 的发布请求中使用访问令牌
- 多设备混合应用程序 - 有没有人让 android 的索引数据库插件工作
- 纯 Javascript 代码执行停止混合应用程序中的离子加载指示器
- 混合应用程序:使用 AngularJS 更改 HTTP 用户代理标头
- 如何优化iphone6/6+的混合应用程序
- 您称之为传统/推送状态混合应用程序
- 混合应用程序的应用内电子邮件功能
- 如何将PayU资金与Cordova应用程序(混合应用程序)集成
- 混合应用程序无法在三星Galaxy 5或6上运行