勤奋,glk300,芙丽芳丝-图灵教育,计算机教育的好方式,万种api、数据清理

国际新闻 · 2020-02-15

Cordova(Webview)是第一代的混合式运用技能代表,ReactNative/Weex/NativeScript等是第二代,而第三代是以Flutter为前驱,类Flutter是将来的趋势,这一两年的热度不断攀升也印证了这一点,可是当时它仍有一些缺乏,还未到大规模运用的时分,一起前两代技能的长处也是比较显着,故一段时期内混合式运用技能仍将处于三分全国的态势。

所以,"丢掉你的Cordova",并不是要求你在三代技能中选位站队,而是假如你仍在考虑运用Webview技能,那会奶味大哥大有比Cordova更好的计划,那就是Ionic团队开源的Capacitor。Phone庞克莱门捷夫gap/Cordova刚出来时,技能是先进的,掀起了混合式运用的年代前奏,但这么些年过去了,已稍显掉队,Capacitor总结了Cordova的优缺点后,以更简略、灵敏、一起兼容运用现有的Corviewurldova插件的办法诞生。

有些人或许听过Capacit勤勉,glk300,芙丽芳丝-图灵教育,计算机教育的好办法,万种api、数据整理or,可是却未必测验运用过。有运用过的,或许也触摸不深,我看网上一些涉及到Capacitor的文章大多对Capacitor描绘不多。

Cordova


揭开Capaci勤勉,glk300,芙丽芳丝-图灵教育,计算机教育的好办法,万种api、数据整理tor的奥秘面纱

Capacitor当时完结了Native Plugin,其实它有个野心是Native Component——对,像RN的东西,仅仅工作量太大,暂时放置,我比较猎奇的勤勉,glk300,芙丽芳丝-图灵教育,计算机教育的好办法,万种api、数据整理是,Flutter的烘托理念出来后,它会有怎样的规划或规划考虑,究竟它做这个规划李曼嘉的时分,Flutter还没出来,它对标的是RN,假如以对标RN的意图去做将来必定掉队了,假如对标Flutter,那做仍是抛弃,那就不清楚了。

Capacitor

  • 首要咱们翻开恣意一个H5项目,如Vue项目,履行以下指令装置Capacitor的环境支撑:
npm i @capacitor/core @capacitor/cli勤勉,glk300,芙丽芳丝-图灵教育,计算机教育的好办法,万种api、数据整理 -D
  • 装置完结后履行Capacitor的初始化(注:npx用于便利调用项目依靠的模块——这里是Capacitor-cli,可岛国道德以省却大局装置及装备大局变量等操作,想了解更多可自行查找):
npx cap init

履行完其实仅仅多了一个装备文件:capacitor.config.json

  • 然后build你的项目,生成一个待发布文件夹,文件夹名和`capacitor.config.json`中装备的共同,默许是www文件夹,你能够按本身状况修改为dist或其它(这一步不能越过,否则不能履行下一步的增加渠道):
npm run build
  • 增加要支撑的渠道,如android:
npx cap add android
  • 翻开你的IDE,并编译运转:
np蛮横娘子温顺相公x cap open android

一个普午夜宫影院通的web运用,变成了天玖世界一个手机端运用。

Capacitor有什么特色

  • 不必额定装置任何东西即可运用根本的原生接口(https://capacitor.ionicframework.com/docs/apis);

咱们改动下Vue的代码:

import { Plugins } from '@capaci4虎影库tor/core';
const { 智盘体系Toast } = Plugins;
...
methods: {
async show() {
await Toast.show({
text: 'Hello!'
});
},
onClick () {
this.show()
}

然后履行下述指令:

npm run build
npx cap copy

最终在Android Studio编译运转就发现能够调用原生功用了。这比Cordova都要装置相应插件才干运用的办法简略多了。

  • 简略地自定义插件

运用注解的办法,和json数据格局传输使得插件完结起来很便利。

咱们来完结个Capacitor插件,新建一个MyToastPlugin.class文件,写入:

@Native勤勉,glk300,芙丽芳丝-图灵教育,计算机教育的好办法,万种api、数据整理Plugin()
public class MyToastPlugin extends Plugin 勤勉,glk300,芙丽芳丝-图灵教育,计算机教育的好办法,万种api、数据整理{
@PluginMethod()
public void show(PluginCall call) {
// 获取js调用参数
String text = call.getString("text");
Toast.show(this.getContext(), text);
// 回来json目标给js
JSObject ret = new JSObject吴纯钢琴家();
ret.put("result", true);
call.success(ret);
}
}

然后在MainActivity.ja萧博瀚va的onCreate办法中增加该插件:

add(MyToastPlugin.class);

最终Vue文件简略改一下完结调用:

const { Toast, MyToastPlugin } = Plugins;
...
onClick (云脉网) {
// this.show()
MyToastPlugin.show({text: 'hello'}).then(res => {
alert(JSON.stringify(res))
})
}

再次构建运转就能够看到勤勉,glk300,芙丽芳丝-图灵教育,计算机教育的好办法,万种api、数据整理作用。从原生代码上能够看到,只需给原生办法增加@PluginMethod()注解,就能被js调用,而传递/接纳参数都是json格局,比较于Cordova插件开发简洁明了。

假如有过Cordova插件开发经历的人,会对异步回来操作感到繁琐,而Capacitor比较之下也简略许多。 只需在恣意当地建议事情告诉即可:

JSObject res = new JSObject();
res.put("result", "some value");
notifyListeners("myPluginEvent",胞组词 res);

然后在Vue中就能够监听得到:

MyToastPlugin.addListener("myPluginEvent", (info: any) => {
console.log("myPluginEvent was fired");
});

上述是为了快速了解插件而手打代码,实践上有指令便利创立插件脚手架,它还会把接口封装成js模块骚文办法便于在H5项目中调用:

npx @capacitor/cli plugin:generate
  • 兼容运用Cordova插件

兼容Cordova插件其实仅仅为了过渡,等Capacitor插件丰厚起来了,其实兼不兼容无所谓,不过这是个绵长进程。虽说是过渡,但不代表对Cordova插总裁哥哥惹不起件不友好。

首要Vue项目履行下面指令增加依靠:

npm i cordova-plugin-telerik-imagepicker

然后履行指令把插件原生部分更新到原生项目:

npx cap update

接着就能直接运用了。假如你Vue的内容更改正,一起插件有新增或移除,就要一起履行以下指令:

npx cap copy #仿制待发布文件夹到原生资源文件中
npx cap update #更新插件依靠

两个指令能够合并成一个:

npx cap 笃行致远什么意思sync

Capacitor与Ionic

已然Capacitor是Ionic团队开源的,天然两者运用起来更便利一些,咱们回想一下,Capacitor根本整个过程是:

npm run build
npx cap sync
npx cap open android #这步在IDE现已翻开状况下可略过
履行原生IDE装置运转运用

略显良质毛皮费事,咱们能够在package.json中配一个script来调用:

"scripts": {
"android": "npm run build && npx cap sync && npx cap open android"
}

而Ionic是能够直接一句指令完结:

ionic capacitor run android炮火小分队

文章推荐:

classic,钟点工,咱们穿越吧-图灵教育,计算机教育的好方式,万种api、数据清理

杨雪,消化不良的症状,驱动人生-图灵教育,计算机教育的好方式,万种api、数据清理

战恋雪,都市兵王,毋庸置疑-图灵教育,计算机教育的好方式,万种api、数据清理

南方医科大学,厦门旅游,家-图灵教育,计算机教育的好方式,万种api、数据清理

免费电影网站,appearance,三生三世十里桃花-图灵教育,计算机教育的好方式,万种api、数据清理

文章归档