最近采用原生控件+前端技术开发Android、iOS客户端的方式很流行,其实这种技术方案出现很久了;后来随着html5的发布,采用前端技术也可以渲染出炫丽的视觉界面,这种方案就更加流行起来;另外,复用性高,节约成本,也是其得以流行的原因之一。
原生控件和前端技术结合的实现方式有两种:
1、前端静态资源在客户端
将静态文件(html、js、css、图片等)放在assets目录下,用下面方法将WebView和html文件绑定:
//Android实现:
public WebView initWebView(WebView webView){
android.view.ViewGroup.LayoutParams layoutParams = new LayoutParams(
android.view.ViewGroup.LayoutParams.FILL_PARENT,
android.view.ViewGroup.LayoutParams.FILL_PARENT);
webView.setLayoutParams(layoutParams);
WebSettings webSettings = webView.getSettings();
webSettings.setRenderPriority(RenderPriority.HIGH);
//java script
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
// access Assets and resources
webSettings.setAllowFileAccess(true);
webSettings.setAppCacheEnabled(false);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);//隐藏滚动条
webView.loadUrl("file:///android_asset/XXX.html");
}
//iOS实现:
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *html = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
[myWebView loadHTMLString:html baseURL:baseURL];
到此,你可以启动你的程序了,正常情况下XXX.html页面会显示在你的手机上。
这种方式让你可以用前端技术代替原生控件实现界面效果;
另外,如果你的应用需要服务端数据,这种方式可以提高应用程序响应速度,特别是在带宽有限(如:2G/3G网络)的情况下比较明显;因为很多静态文件已经在本地了,不需要在程序运行时从服务端下载。
2、前端静态资源在服务端
直接用webview加载一个链接就可以了:
//Android实现:
webView.loadUrl("http://ringw.iteye.com/blog/2072310");
//iOS实现:
NSURL* url = [NSURL URLWithString:@"http://ringw.iteye.com/blog/2072310"];//创建URL
NSURLRequest* request = [NSURLRequest requestWithURL:url]; //创建NSURLRequest
[myWebView loadRequest:request];
这种方式简单易懂;更新升级方便。
-----------
对于第一种方式,我发现如果页面上有ajax请求,在iOS上或者android的targetSdkVersion设置为17及以上时,会出现
ajax跨域问题,目前还没找到解决方法,
欢迎一起讨论
分享到:
相关推荐
通过DWZ富客户端框架与PhoneGap的结合,开发者可以创建出能够打包成iOS、Android等平台原生应用的Web应用,这使得使用DWZ框架的Web应用不仅仅局限于浏览器,而是能够更广泛地部署到多种移动设备上。 结合这部分内容...
NativeApp指完全使用原生技术开发的应用,提供最佳的用户体验和性能,但成本较高,且需要分别维护iOS和Android两个版本。 React Native的诞生正是为了解决上述开发模式带来的问题。它使用JavaScript调用原生方法,...
XE10移动开发框架充分利用了FireMonkey的特性,允许开发者使用一套代码库创建可以在iOS、Android、Windows等不同平台上运行的应用。其设计目标是简化开发流程,提高开发效率,同时保持高性能和原生用户体验。 **...
MUI是基于HTML5+CSS3的移动UI框架,由DCloud(即HBuilder的开发者)开发,设计风格接近iOS和Android的原生界面,简化了前端页面的布局和组件开发。 4. **系统功能介绍**:移动购物APP的功能通常包括商品浏览、搜索...
鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...
- **前端发展趋势**:随着Web技术的发展,现代前端技术已经能够支持跨平台应用的开发。这意味着使用Web技术不仅可以构建传统的网站,还能开发移动Web应用乃至原生级别的移动应用。 - **书籍定位**:本书面向求职中...
4. App开发:这里的App可能指的是原生App,需要针对iOS和Android等不同操作系统进行开发,通常使用Swift、Objective-C(iOS)、Java、Kotlin(Android)等语言。原生App拥有更好的性能和用户体验,但开发成本相对较...
6. 跨平台开发实践:由于HTML5技术的特性,利用HTML5开发的Web应用程序可以部署在不同的平台上,如iOS、Android、Windows等。开发者可以通过一套代码实现跨平台部署,这对于降低开发和维护成本非常重要。 7. 设备...
这个项目“lyverva-phonegap”是针对Lyverva服务的PhoneGap客户端实现,表明它是一个基于Web技术的移动应用,旨在运行在Android、iOS等平台上,为用户提供与Lyverva服务的交互。 PhoneGap的核心是Cordova,Cordova...
- **Delphi XE6** 是由 Embarcadero Technologies 开发的一款强大的跨平台开发工具,支持开发者使用单一代码库快速构建适用于 Windows、Mac、Android 和 iOS 的原生应用。 - 它提供了一个经过验证的可视化开发环境,...
在本文中,我们将深入探讨“ECommerce.Mobile:ECommerce项目-NativeScript Mobile...通过学习和实践这个项目,开发者不仅可以提升自己的移动开发技能,还能了解到如何利用Web技术开发原生应用,从而拓宽职业发展道路。
它支持Windows、macOS、iOS和Android等多个平台,拥有丰富的组件库和现代化的UI设计工具。 - **集成开发环境**:C++ Builder提供了全面的开发工具,包括代码编辑器、调试器、构建工具等,方便开发者在一个环境中...
这涉及到使用Web技术(如HTML5)创建适应各种屏幕大小和触摸操作的响应式网站,或者使用原生平台的开发工具(如iOS的Swift或Android的Java/Kotlin)构建原生应用。 此外,现代客户端开发还包括前端框架和库的使用,...
在移动应用领域,Android开发者会使用XML布局和Java或Kotlin代码,iOS开发者则使用Storyboard或SwiftUI来构建登录视图。 登录信息的显示策略也很重要。为了保护用户隐私,密码输入框通常会使用星号或圆点代替明文字...
12. **React Native**:React技术也扩展到了移动应用开发领域,React Native允许开发者用JavaScript和React编写原生iOS和Android应用。 这个"关于React常见问题链接集合"可能会涵盖以上这些主题,以及更多实战中...
2. **View层**:包含UI组件和布局,使用Xamarin.Forms或者针对特定平台的原生控件实现。 3. **Presenter层**:作为Model和View之间的中介,处理数据交互和业务逻辑,通常会调用BaaS的API。 4. **API客户端**:封装了...