日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

如何在IOS中使用Cordova插件

瀏覽:187日期:2022-09-16 17:13:58
一、準備

插件功能:打開IOS相機

1:創建插件

plugman create --name [插件名稱] --plugin_id [插件ID] --plugin_version [插件版本號]plugman create --name CameraDemo --plugin_id cordova-plugin-camerademo --plugin_version 1.0.0

2:添加IOS平臺

plugman platform add --platform_name ios

3:創建package.json文件

以下兩種都可以生成package.json1:使用命令 “npm init” 創建package.json文件2:plugman createpackagejson [插件路徑]原應用使用的ionic UI框架,沒有package.json無法安裝插件

最終插件目錄結構

如何在IOS中使用Cordova插件

除了ViewController.h和ViewController.m文件,其余的文件通過上述步驟都會自動生成

二、過程

創建文件ViewController.h和ViewController.mViewController.h

#import <UIKit/UIKit.h>@interface ViewController : UIViewController{}@property (nonatomic,strong) UIImagePickerController *imagePicker;- (void)getDeviceInfo; //獲取ios設備信息- (void)OpenCamera;//打開ios相機@end

ViewController.m

#import 'ViewController.h'@interface ViewController ()@end@implementation ViewController- (id) init{ NSLog(@'=======================相機初始化'); self = [super init]; self.imagePicker = [[UIImagePickerController alloc] init]; return self;}- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view.UIButton *button =[[UIButton alloc]init]; [button setTitle:@'我是按鈕' forState:(UIControlStateNormal)]; [button setTitleColor:[UIColor redColor] forState:(UIControlStateNormal)]; [button setTitleColor:[UIColor blueColor] forState:(UIControlStateHighlighted)]; [button setBackgroundColor:[UIColor yellowColor]]; [button setFrame:CGRectMake(10, 50, 100, 30)]; //事件 //[button addTarget:self action:@selector(click) forControlEvents:(UIControlEventTouchUpInside)]; [self.view addSubview:button];UIButton *deviceBtn =[[UIButton alloc]init]; [deviceBtn setTitle:@'查看設備信息' forState:(UIControlStateNormal)]; [deviceBtn setTitleColor:[UIColor redColor] forState:(UIControlStateNormal)]; [deviceBtn setTitleColor:[UIColor blueColor] forState:(UIControlStateHighlighted)]; [deviceBtn setBackgroundColor:[UIColor yellowColor]]; [deviceBtn setFrame:CGRectMake(120, 50, 200, 30)]; [deviceBtn addTarget:self action:@selector(getDeviceInfo) forControlEvents:(UIControlEventTouchUpInside)]; [self.view addSubview:deviceBtn];UIButton *openCameraBtn =[[UIButton alloc]init]; [openCameraBtn setTitle:@'打開相機' forState:(UIControlStateNormal)]; [openCameraBtn setTitleColor:[UIColor redColor] forState:(UIControlStateNormal)]; [openCameraBtn setTitleColor:[UIColor blueColor] forState:(UIControlStateHighlighted)]; [openCameraBtn setBackgroundColor:[UIColor yellowColor]]; [openCameraBtn setFrame:CGRectMake(330, 50, 200, 30)]; [openCameraBtn addTarget:self action:@selector(openCamera) forControlEvents:(UIControlEventTouchUpInside)]; [self.view addSubview:openCameraBtn];}- (void)getDeviceInfo{ NSLog(@'獲取設備信息。。。。'); NSString *name = [[UIDevice currentDevice] name]; NSString *systemName = [[UIDevice currentDevice] systemName]; NSString *systemVersion = [[UIDevice currentDevice] systemVersion]; NSString *model = [[UIDevice currentDevice] model]; NSString *localizeModel = [[UIDevice currentDevice] localizedModel];UILabel *nameL = [[UILabel alloc] init]; UILabel *systemNameL = [[UILabel alloc] init]; UILabel *systemVersionL = [[UILabel alloc] init]; UILabel *modelL = [[UILabel alloc] init]; UILabel *localizeModelL = [[UILabel alloc] init];[nameL setText:name]; [systemNameL setText:systemName]; [systemVersionL setText:systemVersion]; [modelL setText:model]; [localizeModelL setText:localizeModel];[nameL setTextColor:[UIColor blueColor]]; [systemNameL setTextColor:[UIColor blueColor]]; [systemVersionL setTextColor:[UIColor blueColor]]; [modelL setTextColor:[UIColor blueColor]]; [localizeModelL setTextColor:[UIColor blueColor]];CGFloat x = 10; CGFloat y = 80; CGFloat width = 200; CGFloat height=20;nameL.frame = CGRectMake(x, y+20, width, height); systemNameL.frame = CGRectMake(x, y+40, width, height); systemVersionL.frame = CGRectMake(x, y+60, width, height); modelL.frame = CGRectMake(x, y+80, width, height); localizeModelL.frame = CGRectMake(x, y+100, width, height);[self.view addSubview:nameL]; [self.view addSubview:systemNameL]; [self.view addSubview:systemVersionL]; [self.view addSubview:modelL]; [self.view addSubview:localizeModelL];}- (void)openCamera{ //NSLog(@'打開攝像頭。。。。'); //UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; self.imagePicker.editing = YES; self.imagePicker.delegate = self; self.imagePicker.allowsEditing = YES;if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){NSLog(@'選擇相機。。。');self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; }[self presentViewController:self.imagePicker animated:YES completion:nil];}@end

這兩個文件其實是我已經在ios原生項目下編譯運行過的文件,然后被CameraDemo.m調用。(其實有點類似于庫的作用)

直白一點就是。有一個庫(ViewController.h和ViewController.m),提供了一個類ViewController,這個類提供了兩個方法

(void)getDeviceInfo; //獲取ios設備信息 (void)OpenCamera; //打開ios相機

然后CameraDemo.m去實例化了這個類CameraDemo.m

/********* CameraDemo.m Cordova Plugin Implementation *******/#import <Cordova/CDV.h>#import 'ViewController.h'//這里必須繼承CDVPlugin 類,表示CameraDemo是Cordova插件類@interface CameraDemo : CDVPlugin { // Member variables go here.}@property (nonatomic,strong) ViewController *view; //聲明一個ViewController- (void)coolMethod:(CDVInvokedUrlCommand*)command; //創建插件自帶的方法,可以刪除- (void)openCamera:(CDVInvokedUrlCommand*)command;@end@implementation CameraDemo- (void)pluginInitialize{ NSLog(@'===========================初始化CameraDemo'); [super pluginInitialize]; // 實例化ViewController self.view = [[ViewController alloc] init];}//創建插件自帶的方法,可以刪除- (void)coolMethod:(CDVInvokedUrlCommand*)command{ CDVPluginResult* pluginResult = nil; NSString* echo = [command.arguments objectAtIndex:0]; if (echo != nil && [echo length] > 0) {pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo]; } else {pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR]; } [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];}- (void)openCamera:(CDVInvokedUrlCommand*)command{// 將ViewController的實例viewController 顯示出來 [self.viewController presentViewController:self.view animated:YES completion:nil]; //ViewController *view = [[ViewController alloc] init]; //[view openCamera]; //CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];; //[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];}@end

CameraDemo.js

var exec = require(’cordova/exec’);exports.coolMethod = function (arg0, success, error) { exec(success, error, ’CameraDemo’, ’coolMethod’, [arg0]);};exports.openCamera = function (arg0, success, error) { exec(success, error, ’CameraDemo’, ’openCamera’, [arg0]);};

plugin.xml (這個文件非常非常的重要,js可以調用oc全靠它,多查查資料)

<?xml version=’1.0’ encoding=’utf-8’?><plugin version='1.0.0' xmlns='http://apache.org/cordova/ns/plugins/1.0' xmlns:android='http://schemas.android.com/apk/res/android'> <name>CameraDemo</name> <js-module name='CameraDemo' src='http://m.b3g6.com/bcjs/www/CameraDemo.js'><clobbers target='cordova.plugins.CameraDemo' /> </js-module> <platform name='ios'><config-file parent='/*' target='config.xml'> <feature name='CameraDemo'><param name='ios-package' value='CameraDemo' onload='true'/> </feature></config-file><source-file src='http://m.b3g6.com/bcjs/src/ios/CameraDemo.m' /><header-file src='http://m.b3g6.com/bcjs/src/ios/ViewController.h' /><source-file src='http://m.b3g6.com/bcjs/src/ios/ViewController.m' /> </platform></plugin>

package.json (一般不需要修改)

{ 'name': 'cordova-plugin-camerademo', 'version': '1.0.0', 'description': '', 'cordova': { 'id': 'cordova-plugin-camerademo', 'platforms': [ 'ios' ] }, 'keywords': [ 'ecosystem:cordova', 'cordova-ios' ], 'author': '', 'license': 'ISC'}

CameraDemo.js 通過 plugin.xml 配置去調用了原生的ocject-c方法

最后Cordova項目調用插件

重要,如果調用和插件中的plugin.xml配置有關,所以plugin.xml非常重要

// 在項目的 ts文件中調用declare let cordova:anycordova.plugins.CameraDemo.openCamera();

以上就是如何在IOS中使用Cordova插件的詳細內容,更多關于IOS使用Cordova的資料請關注好吧啦網其它相關文章!

標簽: IOS
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品mv在线观看| 国产精品4hu.www| 日韩中文字幕1| 日韩精品中文字幕一区二区| 国产精品一二| 精品三级久久| 免费在线观看日韩欧美| 欧美久久久网站| 青青青免费在线视频| 一本一本久久| 亚洲精品伊人| 日韩毛片网站| 国产极品一区| 麻豆视频在线看| 成人日韩精品| 午夜国产精品视频免费体验区| 国产亚洲综合精品| 亚洲精品激情| 欧美激情亚洲| 日韩欧美一区二区三区在线观看| 免费av一区| 蜜桃久久久久久| 日韩一区二区中文| 图片区亚洲欧美小说区| 欧美日韩一区二区三区不卡视频 | 麻豆mv在线观看| 日本韩国欧美超级黄在线观看| 欧美一区不卡| 久久久久免费| 亚洲图片久久| 在线一区视频观看| 国产精品一区二区免费福利视频| 亚洲性图久久| 国产福利资源一区| 亚洲免费影视| 精品国产免费人成网站| 日韩精品91亚洲二区在线观看| 91精品亚洲| 欧美国产日韩电影| 日韩一区二区免费看| 精品欠久久久中文字幕加勒比| 亚洲一区二区av| 99精品在线观看| 麻豆国产91在线播放| 日韩精品一级中文字幕精品视频免费观看 | 国产精品白浆| 美女网站久久| 日韩高清不卡| 欧美精品99| 日本综合精品一区| 欧美日韩水蜜桃| zzzwww在线看片免费| 国产精品网址| 日韩国产欧美在线播放| 在线一区免费观看| 亚洲a一区二区三区| 欧美日韩免费观看一区=区三区| 国产日韩精品视频一区二区三区| 婷婷精品视频| 久久的色偷偷| 性色av一区二区怡红| 精品国产亚洲一区二区三区在线 | 青草国产精品久久久久久| av综合电影网站| 日韩成人午夜精品| 日韩区欧美区| 亚洲一级少妇| 国产一区二区三区亚洲| 国产亚洲一卡2卡3卡4卡新区| 亚洲一区日韩在线| 日韩高清电影一区| 免费在线欧美黄色| 综合激情网站| 99久久精品费精品国产| 欧美精品97| 色爱综合网欧美| 日韩精品一区第一页| 91精品观看| 精品一区亚洲| 国产综合欧美| 尤物精品在线| 蜜臀久久99精品久久久久宅男| 国产精品一区二区三区av| 不卡中文字幕| 成人在线免费观看网站| 日韩一区精品| 午夜久久福利| 精品国产午夜肉伦伦影院| 日韩国产欧美一区二区三区| 伊人久久亚洲热| 日韩精品一区二区三区免费观看| 国产精品www.| 一区二区三区网站| 在线一区电影| 久久久久网站| 中文字幕在线视频网站| 国产精品激情| 麻豆视频在线观看免费网站黄| 高清日韩欧美| 日韩精品2区| 欧美jjzz| 亚洲一区免费| 日本在线一区二区三区| 日韩国产在线观看| 欧美日韩精品一区二区三区视频| 欧美日韩中出| 九九久久国产| 国产盗摄——sm在线视频| 成人国产精品一区二区免费麻豆| 欧美xxxx中国| 欧美日韩国产一区二区三区不卡| 宅男噜噜噜66国产日韩在线观看| 丝袜国产日韩另类美女| 日本综合视频| 牛牛精品成人免费视频| 不卡一二三区| 红桃视频国产精品| 美美哒免费高清在线观看视频一区二区| 综合激情婷婷| 国产欧美一区二区三区米奇| 国产一区二区三区免费在线 | 欧美+亚洲+精品+三区| 国产麻豆久久| 999久久久国产精品| japanese国产精品| 午夜国产精品视频| 丝袜a∨在线一区二区三区不卡| 国产精品色网| 蜜臀精品一区二区三区在线观看| 亚洲欧美一级| 日韩精品1区2区3区| 清纯唯美亚洲综合一区| 国产日韩三级| 高清一区二区| 91精品一区二区三区综合在线爱| 久久久一本精品| 蜜臀av免费一区二区三区| 亚洲欧美日韩视频二区| 免费看日韩精品| 日韩激情综合| 精品一区二区三区亚洲| 在线看片福利| 日韩高清在线不卡| 日本免费一区二区视频| 在线天堂中文资源最新版| 视频一区在线视频| 麻豆免费精品视频| 在线精品小视频| 国产精品成人**免费视频| 国产精品99一区二区| 日韩av中文在线观看| 成人片免费看| 免费在线视频一区| 国产在线视频欧美一区| 先锋亚洲精品| 黄色精品视频| 午夜亚洲福利在线老司机| 国产精品麻豆成人av电影艾秋 | 国产一区二区三区探花| 欧美专区在线| 精品网站999| 亚洲专区视频| 成人在线网站| 国产麻豆精品久久| 夜夜嗨一区二区| 国产一区二区三区黄网站| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品美女视频 | 日韩在线视频一区二区三区| www.51av欧美视频| 日韩精选在线| 亚洲国产一区二区三区在线播放| 欧美精品91| 久色成人在线| 欧美13videosex性极品| 欧美日韩中文| 天使萌一区二区三区免费观看| 久久青青视频| 国产精品调教| 日韩中文欧美在线| 韩国精品主播一区二区在线观看| 国产三级一区| 蜜桃视频第一区免费观看| 久久久久国产精品一区三寸| 国产精品成人3p一区二区三区| 日本欧美在线看| 久久精品国产www456c0m| 欧美激情日韩| 日韩视频1区| 99riav1国产精品视频| 首页国产精品| 国产剧情一区二区在线观看| 免费人成黄页网站在线一区二区| 久久久亚洲一区| 正在播放日韩精品| 九九99久久精品在免费线bt| 国产日产一区| 午夜性色一区二区三区免费视频| 免费毛片在线不卡| 日韩中文首页|