許多app 開發者(or 廠商), 為了節省跨平台開發的成本,
會使用webview or phonegap來開發Android, PC, iOS的app,
這篇來簡單介紹一下基本的webview
首先在layout xml裡面定一個webview用來呈現web page
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true" />
然後在AndroidManifest定義permission
<uses-permission android:name="android.permission.INTERNET" />
之後只要在onCreate()把指定的URL給webview就可以囉!
以下的範例是連結到露天拍賣, 並且透過javascript自動把關鍵字填上後搜尋
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_autofill_main);
WebView webview = (WebView) findViewById(R.id.webView);
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setJavaScriptEnabled(true);
final Activity activity = this;
webview.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
}
});
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.evaluateJavascript("document.getElementById('keyword').value = 'nexus 5';document.srch.submit();", null);
view.getSettings().setJavaScriptEnabled(false);
}
});
webview.loadUrl("http://www.ruten.com.tw");
}
其實由上面的例子也可以依樣畫葫蘆使用javascript寫出自動填表或是自動登入的功能,
就看要怎麼發揮囉!
P.S. 不過比起用webview開發app, 個人覺得使用native app才可以充分使用Android平台(or iOS)的功能,
不被webkit的功能(or Bug)給綁住