安卓回调js函数,在angular2中怎样实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓回调js函数,在angular2中怎样实现相关的知识,希望对你有一定的参考价值。

参考技术A 首先,HTML页面可以引入JavaScript代码。比如,我可以在Angular工程中直接使用echarts:
<!doctype html><html><head>
<meta charset="utf-8">
<title>Angular App</title>
<base href=".">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico"></head><body>
<app-root>loading</app-root>
<script src="./assets/echarts.min.js" type="text/javascript"></script></body></html>

然后通过window对象访问相应的对象,比如以下的代码是对echarts组件的一个小封装。我们通过window["echarts"]这种方式来访问echarts的JavaScript代码:
import Component, OnChanges, ElementRef, Input from '@angular/core';@Component(
selector: 'echarts',
templateUrl: './echarts.component.html',
styleUrls: ['./echarts.component.css'])export class EchartsComponent implements OnChanges

public chart: any;
@Input() options: any;
private isLoaded: boolean;

constructor(private elementRef: ElementRef)
this.chart = ;
this.isLoaded = false;


ngOnChanges(changes: any)
if (changes["options"].currentValue && Object.keys(changes["options"].currentValue).length != 0)
this.chart = window["echarts"].init(this.elementRef.nativeElement.childNodes[0]);
this.isLoaded = true;

if (this.isLoaded)
this.chart.setOption(changes["options"].currentValue);



第二个问题,怎么回调。
其实也很简单。我们将你的Android调用JavaScript的代码实现为一个事件发射器,然后在Angular的某个Component中接受这个事件并处理:
Android事件"javascript:callback()"-----发射到WebView----->window.callback = function() //发送自定义事件------发送到Component------>class A private callbackHandler() //window.addEventListener()

实现思路是这个,不是很优雅,但是能解决问题。

angular js中怎样四舍五入

参考技术A angularJS中并没有什么特殊,完全是基于JS的,当然angularJS里面内置精简版的jQuery - jqLite,但这完全没限制angularJS到底是用什么方法或者函数来四舍五入。

1.Math.round(5/2);
2.var num=3.1415926535897932384626433;
num.toFixed(3);
参考技术B data| number : 2 四舍五入保留两位小数
data/除数| number : 2 四舍五入保留两位小数

以上是关于安卓回调js函数,在angular2中怎样实现的主要内容,如果未能解决你的问题,请参考以下文章

cocos js 怎样在 runAction(cc.sequence(a1, a2)); 后执行一个回调函数?

安卓中java和js如何交互

js回调函数如何实现异步,给一个例子

回调在 Angular2/Firebase 中生成“TypeError:这是未定义的”

RN - 封装Android原生WebView组件,实现JS获取原生消息回调及JS控制native组件

箭头函数中的 WebSocket 回调未按词法设置“this”