蛋疼的是你不能用native去写app,那么只能用个中间件来完成,现在选择无疑是cordova,国内的多用appcan(去年用过,个人感觉除了有点乱之外其他的还ok),先来讲讲cordova插件,因为很多时候官方提供的plugin已经在我们自身应用中满足不了,那么只能依靠自己去完成,如下最简单的webapp plugin。

plugin(myKitty)

|__www

|   |__myKitty.js

|

|__plugin.xml

以上是结构

我们来看下怎么去完成这个plugin

plugin.xml

id="com.korewang.cordova.myKitty"

version="1.0.0">

KittyPlugin

KittyPlugin Description

korewang

Apache 2.0 License

=3.0.0" />

myKitty.js

var myKitty = function() {};

myKitty.prototype.name = function() {

alert("Kitty && Kitty");

};

var mykitty = new myKitty();

module.exports = mykitty;

plugin已经写完,接下来是在我们的app里加入plugin,直接上图最明了

此时 KittyPlugin已经添加到你的app里可以调用

onDeviceReady之后调用

myKitty.name();

调用成功;这个是不用调native的方法如js的公共类自己的小方法可以放入plugin

下面我们说下native Android和js的plugin

先看目录结构

plugin(myToast)

|__src

|   |__android

|   |    |__myToast.java

|   |__ios

|   |   |__myToast.m

|   |...

|__www

|   |__myToast.js

|__plugin.xml

目录完善之后我们就填东西

plugin.xml

id="com.korewang.cordova.Toast"

version="1.0.0">

ToastPlugin

com.korewang.cordova.Toast Description

korewang

Apache 2.0 License

=3.0.0" />

myToast.js

var exec = require('cordova/exec');

var myToast = function(){};

myToast.prototype.show=function(content,type){

exec(null, null, "webToast", "show", [content,type]);

};

myToast.prototype.openVideo=function(content){

exec(null, null, "webToast", "openVideo", [content]);

};

var showt = new myToast();

module.exports = showt;

myToast.java

package com.korewang.cordova.Toast;

import org.apache.cordova.CallbackContext;

import org.apache.cordova.CordovaInterface;

import org.apache.cordova.CordovaPlugin;

import org.apache.cordova.CordovaWebView;

import org.json.JSONArray;

import org.json.JSONException;

import android.content.Context;

import android.telephony.TelephonyManager;

import android.util.Log;

public class myToast extends CordovaPlugin {

private static final String TAG = "Toast";

@Override

public void initialize(CordovaInterface cordova, CordovaWebView webView) {

super.initialize(cordova, webView);

Log.v(TAG, "Toast: initialization");

Context context = this.cordova.getActivity().getApplicationContext();

}

@Override

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

if("show".equals(action)){

showToast(args.getString(0), args.getInt(1));

}else if("openVideo".equals(action)) {

openVideo(args.getString(0));

}

callbackContext.success();

return true;

}//

private void showToast(String text,int type){

CordovaInterface cordova = this.cordova;

if(type==1){

Log.e("e11111111111111111", "Crop operation not supported on this device");

android.widget.Toast.makeText(cordova.getActivity(), text, 1).show();

}else{

android.widget.Toast.makeText(cordova.getActivity(), text, 0).show();

}

}

private void openVideo(String text){

String url = text;

String extension = MimeTypeMap.getFileExtensionFromUrl(url);

String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);

Intent mediaIntent = new Intent(Intent.ACTION_VIEW);

mediaIntent.setDataAndType(Uri.parse(url), mimeType);

//startActivity(mediaIntent);

cordova.startActivityForResult((CordovaPlugin) this, mediaIntent, 200);

}

}

插件完成后cordova plugin add E:\xx\xx

*******Important*****

Don't forget your platforms add native file of plugin;

******

此时查看成功之后可看到以下结果 platforms下平台时候包含了插件如果没有自己重新创建

js 调用 -> navigator.toast.show("我是Toast,你好Kitty1");

navigator.toast.openVideo("url");

run之后可在模拟器看到以下结果::

cordova打印机插件_phonegap/cordova plugin相关推荐

  1. cordova wifi插件(cordova plugin add cordova-plugin-hotspot)

    本文实现的功能: 1.一键切换wifi状态,打开或关闭 2.输入SSID和密码,连接wifi 3.wifi打开时显示当前可用的wifi,但是还未实现点击SSID名连接wifi的功能 4.桌面实现当前w ...

  2. cordova开发插件,并在android studio中开发、调试

    之前用过cordova Lib包装H5页面,自己写插件,但做法是野路子,不符合cordova插件的开发思路,这次项目又需要包装H5页面,同时需要自定义插件.所以又折腾了一次cordova自定义插件. ...

  3. cordova 蓝牙_Ionic通过Cordova插件使用设备能力

    1. Cordova插件 App运行在手机上,少不了需要使用手机上的设备能力,比如蓝牙.相机.数据库等等.在之前的文章中我们知道Ionic框架实际上还是一个UI框架,一个基于WEB的框架.那么Ioni ...

  4. cordova自定义android插件,Cordova 自定义插件(Android版本)

    Cordova 自定义插件(android) 特别注意 android 项目的包名 必须为 com.example.hello,否则编译不会通过. 1.安装命令工具 $ npm i plugman - ...

  5. ionic3 cordova ionic-native插件

    ionic-native插件 cordova安装插件 以及 ionic-native插件 使用过程以及步骤 cordova plugin add cordova-plugin-插件名称. //安装插件 ...

  6. Vue.js 使用cordova camera插件调取相机

    介绍完上文 用Cordova打包Vue项目之后,本文给出在vue.js里如何使用cordova的插件完成调取相机及图库,并完成图片上传的操作. 具体的操作步骤如下 第一步:在cordova项目下安装c ...

  7. Cordova徽章插件

    转自:https://www.npmjs.com/package/cordova-plugin-badge Cordova插件可访问和修改各种移动平台(包括iOS,Android和Windows)上的 ...

  8. phonegap(cordova) 自定义插件代码篇(三)----支付宝支付工具整合

    建议读者,先阅读官方文档,知晓其支付流程之后再来使用此代码,比如客户需要做什么,服务端需要做什么(很重要!很重要!很重要!),因为这几个篇幅都是纯代码篇,因为阅读前面的入门篇之后看这些应该毫无问题才对 ...

  9. vue调用cordova 插件_Vue.js 使用cordova camera插件调取相机

    本文给出在vue.js里如何使用cordova的插件完成调取相机及图库,并完成图片上传的操作. 具体的操作步骤如下 第一步:在cordova项目下安装cordova-plugin-camera插件 c ...

最新文章

  1. Linux下编译安装Apache、php和svn
  2. REST 架构是什么
  3. mysql for 语句执行顺序_MySQL查询语句的执行流程
  4. Spring使用JPA进行Dao层的数据访问以及事务管理
  5. php中extends是什么意思,在php中extends与implements的区别
  6. 获取class文件对象的三种方式
  7. basic认证 接口 php,PHP 模拟 HTTP 基本认证(Basic Authentication) - 黄棣-dee - 博客园...
  8. C++之临时对象、常引用和浅拷贝探究
  9. 【沫沫金】安卓手机版 - 日期控件
  10. (收藏)《博客园精华集》分类索引
  11. 基于GPIB接口的自动测试系统
  12. app商城开发要多少钱_价格透明_讲讲行业收费套路_OctShop
  13. 市场调研-全球与中国化妆品级抗坏血酸葡糖苷市场现状及未来发展趋势
  14. 剑指offer部分题目及答案 python完成
  15. 拼多多砍价背后的逻辑
  16. 代码何须全部自己写,融云守护程序猿发际线
  17. 重新安装键盘鼠标后,PS2键盘无法识别问题!
  18. Servlet过滤器与事件处理
  19. 33岁想从头学做网页设计_从头到头的10位客户我如何设计和推出saas产品
  20. 大衣哥儿子小伟终于开窍了,未过门媳妇晒出双胞胎检验单

热门文章

  1. 计算机考研复试真题 打印日期
  2. Google 关健词
  3. 第一启富金:本周聚焦美联储利率,后续是否继续加息成关健
  4. 这个医生说的防疫措施,我挺认可的
  5. VBA学习笔记:1、用msxml v6.0网抓
  6. android xml animated-rotate,Android Drawable介绍
  7. CSS篇 累了,毁灭吧
  8. 26个充满创意的平面广告作品欣赏
  9. javascript面向对象精要学习总结(第四章 构造函数和原型对象)
  10. gta5nat严格怎么办_如何解决在游玩 GTA 在线模式时出现的 NAT 类型为“严格”(Strict)的错误...