ios的Phonegap插件...javascript部分
Posted
技术标签:
【中文标题】ios的Phonegap插件...javascript部分【英文标题】:Phonegap plugin for ios...javascript part 【发布时间】:2012-03-30 08:54:29 【问题描述】:我需要为 ios 创建一个 phonegap 插件,它可以从音乐库中获取所有艺术家。我知道如何在 Objective C 中做到这一点,但我不知道 javascript。我阅读了适用于 iOS 的 phongegap 插件文档,但我不了解 javascript 部分。请帮忙。 这是我的代码...
Artist.m
#import "Artist.h"
#import <MediaPlayer/MediaPlayer.h>
#import <PhoneGap/PGPlugin.h>
@implementation Artist
-(void)getArtistNames:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
MPMediaQuery *query=[MPMediaQuery artistsQuery];
NSArray *artists=[query collections];
artistNames=[[NSMutableArray alloc]init];
for(MPMediaItemCollection *collection in artists)
MPMediaItem *item=[collection representativeItem];
[artistNames addObject:[[item valueForProperty:MPMediaItemPropertyArtist]stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
uniqueNames=[[NSMutableArray alloc]init];
for(id object in artistNames)
if(![uniqueNames containsObject:object])
[uniqueNames addObject:object];
NSLog(@"%@",uniqueNames);
PluginResult *pluginResult=[PluginResult resultWithStatus:PGCommandStatus_OK messageAsArray:uniqueNames];
[self writeJavascript:[pluginResult toSuccessCallbackString:[arguments pop]]];
@end
Artist.js
var ArtistPlugin=;
ArtistPlugin.prototype.getArtistNames = function(types, success, fail)
return PhoneGap.exec(success, fail, "Artist", "getArtistNames", types);
在 index.html 中...
<script type="text/javascript" charset="utf-8" src="Artist.js"></script>
function onDeviceReady()
// do your thing!
navigator.notification.alert("PhoneGap is working");
alert('asdasd');
var abc=Artist.getArtistNames(types, success, fail);
alert(abc);
【问题讨论】:
【参考方案1】:几件事:
最好在 Obj-C 和 JavaScript 中的主类之间保持名称相同。在您的情况下,这意味着您的 Obj-C 类应称为 ArtistPlugin
或您创建的 JavaScript 对象(及其文件名)应称为 Artist
。我会选择所有被称为ArtistPlugin
的人。不太可能发生冲突。
PhoneGap.exec
的最后一个参数是一个数组,所以除非types
是一个数组,否则它应该看起来像:return PhoneGap.exec(success, fail, "Artist", "getArtistNames", [types]);
最后,确保您在 PhoneGap.plist 文件的插件部分中有一个条目。键和值将是您从第 1 步中选择的同质名称(即:键:ArtistPlugin,值:ArtistPlugin)。
希望对您有所帮助。
【讨论】:
是的,我现在可以使用它了,但我仍然更喜欢 Objective C :)以上是关于ios的Phonegap插件...javascript部分的主要内容,如果未能解决你的问题,请参考以下文章
Phonegap 3.0 iOS7 ApplicationPreferences 插件