如何为Windows 8和Android平板电脑制作D3js应用程序

How to make a Web App for a Windows 8 and Android Tablet for D3js application

本文关键字:电脑制作 D3js 应用程序 Android Windows      更新时间:2023-09-26

我有一个javascript/html/css web "应用程序",它使用D3可视化库来可视化文件系统与Bootstrap,它在台式机/笔记本电脑上运行良好。

我现在需要将这个应用程序移动到平板电脑上,并且需要同时支持Windows 8和Android。但我真的不知道怎么做才好。

D3是基于javascript的,所以我不能为每个支持的操作系统制作本地应用程序。我应该通过每个SDK将代码转换为移动web应用程序,还是使用其他方法,如Phonegap(或替代方案)来完成此操作?

如果我使用sdk,那么我需要处理代码的单独版本来更新任何更改,但我不确定Phonegap是否是我正在寻找的,因为它似乎很难开始使用它。我只需要支持Windows 8和Android——有更简单的方法吗?

最后,如果我使用Phonegap创建一个应用程序,我可以访问位于云中的数据库吗?

你真的不需要Phonegap。你可以构建原生应用,只保留一个WebView来填充整个屏幕。WebView将托管您的"web应用程序"。然后,(这是有趣的部分)编写接口以访问本机对象。

在Android中,你将javascript接口写成带有@JavascriptInterface注释的公共方法的类。

class MyJsInterface{
  @JavascriptInterface
  public String doStuff() { return "hello" ; }
}

你注册你的javascript接口在你的webview使用addJavascriptInterface方法:

webView.addJavascriptInterface(new MyJsInterface(), "MyInterface");

在javascript中,你可以使用作为上述方法的第二个参数提供的名称来访问接口的方法(在本例中为MyInterface):

var message = window.MyInterface.doStuff();
// message is 'hello'

返回字符串(JSON)的方法在javascript中工作得很好。
阅读更多Android WebView和javascript接口。



  • WebView(或浏览器控件)的InvokeScript方法,它允许你将数据从c#传递到javascript
  • Notify方法(window.external.notify),它允许你将数据从javascript发送到c#,并在控件上引发ScriptNotify事件。

不错的文章:Windows Phone 8原生和Javascript互操作
MSDN链接:WebBrowser。ScriptNotify事件

不要忘记在你的webviews上启用javascript