介绍
之前写了个把百度云作文网站文件服务器、一些园友的评论不错、不过我似乎把意思弄错了! 我用的百度云的SVN环境!
现在不少人都做web开发。不管你是什么语言编写的(jsp,php,asp.net等等)、使用百度的SitApp都能生成移动版本的轻应用、
包括Android和IOS,目前支持2个、话不多说了。需要详细了解的请直接百度或者看下面即可!
这里是我的PC端:点击预览
然后这是生成的APP:
原理
首先移移动端发起请求、这里不是访问的地址而是百度的APP,然后百度的APP再去连接你的网站、返回给移动端,而不是直接的访问。
准备工作
1》注册帐号、http://developer.baidu.com/light (已有帐号的请直接忽略)
2》点击这个图标创建:
然后跳转到了:
下面就是页面设计了:
这样一直填写数据验证即可。
这是我最终的成果:
我的app自动生成页面:
代码原理
百度的app之强大的功能各位估计也猜想到了其实就是使用了Android内置的webkit内核浏览器,在SDK中封装为一个叫做WebView组件。
什么是webkit WebKit
是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。
同时,WebKit也是Mac OS
X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。
传
统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过,
随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome和Maxthon
3采用V8引擎,却仍然宣称自己是WebKit内核)。
使用注意
1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not
available错误。
2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。
webview.getSettings().setJavaScriptEnabled(true);
3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖
webview的WebViewClient对象。
如下:
mWebView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } });
如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。
public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }
public class WebViewDemo extends Activity { private WebView mWebView; private Handler mHandler = new Handler(); public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.webviewdemo); mWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { mWebView.loadUrl("javascript:wave()"); } }); } }, "demo"); mWebView.loadUrl("File:///URL/index.html"); } }
上面是使用JS
其ta:
为了让WebView从apk文件中加载assets,Android
SDK提供了一个schema,
前缀为"file:///android_asset/"。WebView遇到这样的schema,
就去当前包中的
assets目录中找内容。
2)addJavascriptInterface方法中要绑定的Java对象及方法要运行另外的线程中,
不能运行在构造他的线程中,这也是使用
Handler的目的。
APP
IOS下载
以上,谢谢!