css3可以设置动画和过渡,动画当中可以设置旋转、移动和缩放等参数。
可以在长按的时候,更改为带有动画的类名,就可以执行css3的动画了。
基本流程:先看一下Web中,我们给h1标签添加一个onclick事件,让它在被点击之后,修改当前的url。
Web中的HTML代码:
<html>
<head>
<script>
function getInfo(name)
{
window.location = "/getInfo/"+name
}
</script>
</head>
<body>
<h1 onclick="getInfo('why')">Name</h1>
</body>
</html>
iOS中,先拖拽WebView,访问localhost,然后通过WebView的委托事件监听url跳转操作,并且把跳转截取下来。
也就是说,在onclick的时候,普通浏览器灰跳转到那个url,但是在iOS的这个WebView里面,这个跳转会被拦截,
用这种方式可以巧妙地实现JS调用iOS的原生代码:
//
// DWViewController.m
// DareWayApp
//
// Created by why on 14-6-3.
// Copyright (c) 2014年 DareWay. All rights reserved.
//
#import "DWViewController.h"
@interface DWViewController ()
@property (weak, nonatomic) IBOutlet UIWebView *myWebview // 主页面
@end
@implementation DWViewController
- (void)viewDidLoad
{
[super viewDidLoad]
// Do any additional setup after loading the view, typically from a nib.
// 适配iOS6的状态栏
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
_myWebview.frame = CGRectMake(0,20,self.view.frame.size.width,self.view.frame.size.height-20)
}
// 加载制定的URL
NSURL *url =[NSURL URLWithString:@"http://localhost"]
NSURLRequest *request =[NSURLRequest requestWithURL:url]
[_myWebview setDelegate:self]
[_myWebview loadRequest:request]
}
// 网页中的每一个请求都会被触发
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
// 每次跳转时候判断URL
if([request.mainDocumentURL.relativePath isEqualToString:@"/getInfo/why"])
{
NSLog(@"why")
return NO
}
return YES
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning]
// Dispose of any resources that can be recreated.
}
@end
//①ji与android交互//js调用android方法
window.类.方法名称(参数1,参数2)
//android调用js方法(loginIn:方法名称,uname:参数)
//activity.loadUrl("javascript:loginIn('" + uname + "')")
//②js与ios交互
//js调用ios方法(objc:协议)
window.location.href='objc://方法名称|参数1|参数2'
//ios调用js方法:
同android
其中:android的activity如下:
@Overridepublic void onCreate(Bundle savedInstanceState) {
// setFullScreen(true)
Intent intent = new Intent(getApplicationContext(),
SplashActivity.class)
startActivity(intent)
super.onCreate(savedInstanceState)
super.init()
// Set by <content src="index.html" /> in config.xml
activity = this
// this.appView.setBackgroundResource(R.drawable.welcome)// 设置背景图片
//
// super.setIntegerProperty("splashscreen", R.drawable.welcome)
// 设置闪屏背景图片
// super.setBooleanProperty(name, value)
// super.loadUrl("这里是html页面的路径")
super.appView.addJavascriptInterface(new Fu(), "这里是类名(js中需要通过这个类名访问android方法)")
super.loadUrl(Config.getStartUrl())
// super.loadUrl("file:///android_asset/www/index.html")
// mController.openShare(activity, false)
// try {
// getToken()
// } catch (NoSuchAlgorithmException e) {
// // TODO Auto-generated catch block
// //e.printStackTrace()
// }
}