介紹
之前寫了個把百度雲作文網站文件服務器、一些園友的評論不錯、不過我似乎把意思弄錯了! 我用的百度雲的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下載
以上,謝謝!