phonegap研究小结

最近公司有一个用h5写的项目要求要套用phonegap框架,现在项目差不多快完成了,做一些关于这个框架的小结,主要介绍如何在这个框架下用ios原生的代码和js的一些操作

1.首先是如何使用这个框架我们是在别人的项目上改建的,先把相应的html文件放到对应的www的文件下面。如果加载不出来看看你的root文件下面是不是缺少index.html文件如果没有记得添加进去,你的项目默认的登录显示的那个文件复制一份改成index.html,不删除源文件。

2.js代用iOS的代码:

只要在js文件下的对应位置添加依据代码即可:

window.mydiving_contactUs = (function () {

   function start() {

                             

        var aa='010-46668881';

        console.log('-----start-----');

        $('li>img').bind('touchstart',function(){

           var telnum=$(this).parent().find('em').text();

            console.log(123,telnum);

                       //就是这句代码  

                          cordova.exec(function(){},function(){},"UM_SharePlugin","print1",[aa]);

        });

    }


   return {

        start: start

    }

})();

mydiving_contactUs.start();



这句话的意思就是在框架中调用UM_SharePlugin文件下的print1方法,如果要实现传参那就把相应的参数写到print1后面对应的[]里面如果传递参数比较繁琐请自行封装成字典再写入下面是在UM_SharePlugin.h下面的代码

#import <Foundation/Foundation.h>

#import <Cordova/CDVPlugin.h>

@interface UM_SharePlugin :CDVPlugin


//客服电话

- (void) print1:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;


@end


#import "UM_SharePlugin.h"

@implementation UM_SharePlugin


- (void) print1:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options{

    


    

    if(TARGET_IPHONE_SIMULATOR){

        

        UIAlertView*al=[[UIAlertViewalloc]initWithTitle:@"必须真机环境"message:nildelegate:nilcancelButtonTitle:@"确定"otherButtonTitles: nil];

        [alshow];

        

    }

    

    [[NSNotificationCenterdefaultCenter] postNotificationName:@"TELCalled"object:niluserInfo:@{@"key":arguments[1]}];

    

}


@end

在这个文件下发出通知在相应的mian文件下实现通知即可

#pragma mark-->TEL

-(void)TEL:(NSNotification*)note{

    

   NSLog(@"call");

   UIWebView*phoneCallWebView = [[UIWebViewalloc] initWithFrame:CGRectZero];

   NSString*aPhoneNumber=note.userInfo[@"key"];

   NSURL *phoneURL = [NSURLURLWithString:[NSStringstringWithFormat:@"tel:%@",aPhoneNumber]];

    [phoneCallWebViewloadRequest:[NSURLRequestrequestWithURL:phoneURL]];

    

    [self.viewaddSubview:phoneCallWebView];

    

    

}

3.ios原生代码向js传参

首先js文件中要有获取ios代码传递参数的函数例如


function getcityid(cityname)

{

    console.log('城市名称',cityname);

    $("#city").text(cityname);

}


home_home.start();

其次是ios部分代码

- (void)viewWillDisappear:(BOOL)animated

{

    [superviewWillDisappear:animated];

    //通知名仅供测试,根据项目修改

   if(city){

     [[NSNotificationCenterdefaultCenter] postNotificationName:@"post2JS"object:city];

    }

    

}

下面是在main函数里面的代码部分

#pragma mark-->城市列表传参

//城市列表传参

    [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(post2JS:)name:@"post2JS"object:nil];



- (void)post2JS:(NSNotification*)note{


    //使用alert注意此处最好延迟执行,否则可能程序卡死,未测试非延迟情况下传值问题,延迟执行成功

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{

        

        [self.webViewstringByEvaluatingJavaScriptFromString:[NSStringstringWithFormat:@"getcityid('%@')",note.object]];

        

                                                              

                                                              });

    }



这就实现了一个完整的传参。


4.phonegap框架中使用js文件的时候加载html文件包的时候发现原有的点击事件关闭了,先检查一下对应的html文件下的语句是否含有下面的一句话

<script type="text/javascript" src="../../js/public/cordova.js"></script>
如果没有的话不妨把这句话加进去,说不定会解决你的问题。



Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值