在Worklight中使用Html5和Native进行Hybrid开发时,两者之间互相切换时比较生硬,用户体验非常一般。
其实,我们可以在两者直接切换时增加动画效果来解决此问题:
?
iOS上:
?
(1)从html5转到native时:Native的ViewController里重写onAfterShow方法,在里面增加动画代码:
-(void)onAfterShow{ [self showTransitionAnim]; } -(void)showTransitionAnim { CDVAppDelegate *cordovaAppDelegate =[[UIApplication sharedApplication] delegate]; [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.5]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:[cordovaAppDelegate window] cache:YES]; [UIView commitAnimations]; }
?(2)从Native返回Html5时,做如下处理:
-(void)naviClick:(UIButton *)sender { NSDictionary *dic = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:[sender tag]] forKey:@"index"]; // 显示动画 [self showTransitionAnim]; //返回web界面 [NativePage showWebView:dic]; }
?
Android:
(1)从html5转到native时:Native的Activity里在onCreate方法中增加动画代码:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //增加滑动切换动画 overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right); // Go fullscreen requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.front); }
?
?(2)从Native返回Html5时,做如下处理:
private void returnToWeb() { Intent intent = new Intent(); intent.putExtra("index", index); setResult(RESULT_OK, intent); finish(); //增加滑动切换动画 overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right); }
?
?转载请注明:http://thierry-xing.iteye.com/blog/1832536