国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

android使用webwiew載入頁(yè)面使用示例(Hybrid App開(kāi)發(fā))

2020-04-11 11:52:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Hybrid App 是混合模式應(yīng)用的簡(jiǎn)稱,兼具 Native App 和 Web App 兩種模式應(yīng)用的優(yōu)勢(shì),開(kāi)發(fā)成本低,擁有 Web 技術(shù)跨平臺(tái)特性。目前大家所知道的基于中間件的移動(dòng)開(kāi)發(fā)框架都是采用的 Hybrid 開(kāi)發(fā)模式,例如國(guó)外的 PhoneGap、Titanium、Sencha,還有國(guó)內(nèi)的 AppCan、Rexsee 等等。Hybrid App 開(kāi)發(fā)模式正在被越來(lái)越多的公司和開(kāi)發(fā)者所認(rèn)同,相信將來(lái)會(huì)成為主流的移動(dòng)應(yīng)用開(kāi)發(fā)模式。

Hybrid App 融合 Web App 的原理就是嵌入一個(gè)WebView組件,可以在這個(gè)組件中載入頁(yè)面,相當(dāng)于內(nèi)嵌的瀏覽器,代碼如下:

復(fù)制代碼 代碼如下:

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class AActivity extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 創(chuàng)建WebView
        WebView webView= new WebView(this);
        // 切換到內(nèi)容視圖
        setContentView(webView);
        // 獲取WebView配置
        WebSettings ws = webView.getSettings();
        // 啟用JavaScript
        ws.setJavaScriptEnabled(true);
        // 載入assets目錄下的一個(gè)頁(yè)面
        webView.loadUrl("file:///android_asset/www/BoBox/index.html");
    }
}

還有另一種引入方式是在布局文件中添加 WebView 組件,代碼如下:

復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">   
    <WebView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/webview"
        />       
</LinearLayout>

復(fù)制代碼 代碼如下:

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class BActivity extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        // 查找WebView
        WebView webView = (WebView) findViewById(R.id.webview);
        // 獲取WebView配置
        WebSettings ws = webView.getSettings();
        // 啟用JavaScript
        ws.setJavaScriptEnabled(true);
        // 在載入assets目錄下的一個(gè)頁(yè)面
        webView.loadUrl("file:///android_asset/www/index.html");
    }
}

WebView 還有一個(gè)非常重要的方法――addJavascriptInterface,可以用來(lái)實(shí)現(xiàn) Java 程序和 JavaScript 程序的相互調(diào)用,代碼如下:

復(fù)制代碼 代碼如下:

webView.addJavascriptInterface(new Object(){
    public void clickOnAndroid(){
        mHandler.post(new Runnable(){
            public void run(){
                webView.loadUrl("javascript:wave()");
            }
        });
    }
}, "demo");

頁(yè)面代碼如下:

復(fù)制代碼 代碼如下:

<script>
    function wave() {
        document.getElementById("id").innerHTML = "Hello World!";
    }
</script>
</head>
<body>
    <div>
        <a href="#" id="demo" onclick="window.demo.clickOnAndroid()">Click Me</a>
    </div>
</body>
</html>

這樣,當(dāng)你點(diǎn)擊頁(yè)面上 Click Me 按鈕的時(shí)候就會(huì)調(diào)用 Java 代碼中的 clickOnAndroid 函數(shù),clickOnAndroid 函數(shù)中又調(diào)用頁(yè)面中的 wave 方法。需要注意的是:這個(gè)接口在 Android 2.3 版本的模擬器中運(yùn)行會(huì)導(dǎo)致 WebView 崩潰,目前還沒(méi)有修復(fù)。這是一個(gè)非常簡(jiǎn)單的演示 Java 和 JavaScript 相互調(diào)用的例子,在實(shí)際應(yīng)用中可以在頁(yè)面調(diào)用的 clickOnAndroid 函數(shù)中再調(diào)用攝像頭、通訊錄、通知提醒等設(shè)備功能。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 富平县| 申扎县| 蚌埠市| 泾阳县| 江山市| 宜兴市| 巨野县| 灵寿县| 姜堰市| 枣庄市| 文昌市| 雷山县| 安仁县| 汝南县| 民乐县| 金门县| 佛学| 余庆县| 松阳县| 西乡县| 广昌县| 筠连县| 张北县| 涞源县| 沽源县| 报价| 桦甸市| 漳平市| 乐亭县| 凤庆县| 沾益县| 桦川县| 德惠市| 两当县| 镇平县| 宜兰市| 射阳县| 宜兰市| 长沙市| 江陵县| 临澧县|