由前二篇文章知如何於Android環境鑲嵌並瀏覽網頁,本文進一步讓內嵌網頁與Android互動。請參考:
1. 以WebViewClient於Android開啟網頁,並以AlertDialog提示載入狀態
2. 攔截onKeyDown使BACK按鍵運行WebViewClient之goBack,而非結束Activity
[範例情境]
1.透過Android的WebViewClient包裝網頁
2.點選網頁中的超連結要能自動撥打電話
[情境分析]
1.1個Activity
2.1個Layout
3.1個網頁
4.在Android中呼叫Javascript
SETP 1:新建專案
SETP 2:修改AndroidMainfest.xml
SETP 3:配置Layout
SETP 4:放置網頁
請將你準備要內嵌於WebViewClient的網頁放在assets資料夾,本例網頁只要提供超連結可以點擊即可,其內容如下
< html>
< body>
< a onClick="window.hippo.runOnAndroidJavaScript()">Click Me!< /a>
< /body>
< /html>
assets資料夾 |
SETP 5:撰寫程式碼
package com.exampl.android.homework7;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class Homework7 extends Activity {
private WebView mWebView01;
private Handler mHandler01 = new Handler();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView01 = (WebView) findViewById(R.id.myWebView1);
WebSettings webSettings = mWebView01.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSaveFormData(false);
webSettings.setSavePassword(false);
webSettings.setSupportZoom(false);
mWebView01.addJavascriptInterface(new runJavaScript(), "hippo");
mWebView01.loadUrl("file:///android_asset/test.html");
}
final class runJavaScript
{
public void runOnAndroidJavaScript()
{
mHandler01.post(new Runnable()
{
public void run()
{
Intent myIntentDial = new
Intent(Intent.ACTION_CALL,Uri.parse("tel:0912345678"));
startActivity(myIntentDial);
}
});
}
}
}
SETP 6:執行
沒有留言:
張貼留言