怎么用WebView加载本地html

 我来答
龙氏风采
2016-12-17 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12817
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部

xml

[html] view plain copy

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  

    xmlns:tools="http://schemas.android.com/tools"  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent"  

    tools:context=".MainActivity" >  

  

    <TextView  

        android:id="@+id/tv"  

        android:layout_width="fill_parent"  

        android:layout_height="wrap_content"  

        android:text="@string/hello_world" />  

    <WebView  

        android:layout_below="@+id/tv"  

        android:id="@+id/webview"  

        android:layout_width="fill_parent"  

        android:layout_height="fill_parent"  

    />  

  

</RelativeLayout>  


java

[ruby] view plain copy

package com.example.webview_workflowy;  

  

import android.app.Activity;  

import android.content.Intent;  

import android.net.Uri;  

import android.os.Bundle;  

import android.webkit.WebView;  

import android.widget.Toast;  

  

public class MainActivity extends Activity {  

  

    private WebView webView;  

  

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.activity_main);  

        //加载页面  

        webView = (WebView) findViewById(R.id.webview);  

        //允许JavaScript执行  

        webView.getSettings().setJavaScriptEnabled(true);  

        //找到Html文件,也可以用网络上的文件  

        webView.loadUrl("file:///android_asset/index.html");  

        // 添加一个对象, 让JS可以访问该对象的方法, 该对象中可以调用JS中的方法  

        webView.addJavascriptInterface(new Contact(), "contact");  

    }  

  

    private final class Contact {  

        //JavaScript调用此方法拨打电话  

        public void call(String phone) {  

//            startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone)));  

            Toast.makeText(MainActivity.this, phone, Toast.LENGTH_LONG).show();  

        }  

  

        //Html调用此方法传递数据  

        public void showcontacts() {  

            String json = "[{\"name\":\"zxx\", \"amount\":\"9999999\", \"phone\":\"18600012345\"}]";   

            // 调用JS中的方法  

            webView.loadUrl("javascript:show('" + json + "')");  

        }  

          

        public void toast(String str){  

            Toast.makeText(MainActivity.this, "aaaaaaaaaaaa  --- " + str, Toast.LENGTH_LONG).show();  

        }  

    }  

  

}  


html

[html] view plain copy

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  

<html>  

    <head>  

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  

        <title>Insert title here</title>  

        <script type="text/javascript">  

            function show(jsondata){              

                    var jsonobjs = eval(jsondata);  

                    var table = document.getElementById("personTable");  

                    for(var y=0; y<jsonobjs.length; y++){  

                        var tr = table.insertRow(table.rows.length);   

                        var td1 = tr.insertCell(0);  

                        var td2 = tr.insertCell(1);  

                        td2.align = "center";  

                        var td3 = tr.insertCell(2);  

                        td3.align = "center";  

                        td1.innerHTML = jsonobjs[y].name;   

                        td2.innerHTML = jsonobjs[y].amount;   

                        td3.innerHTML = "<a href='javascript:contact.call(\""+ jsonobjs[y].phone+ "\")'>"+ jsonobjs[y].phone+ "</a>";   

                    }  

            }  

        </script>  

    </head>  

    <body onload="javascript:contact.showcontacts()">  

       <button id="button" onclick = "javascript:contact.toast('123')">haha</button>  

       <table border="0" width="100%" id="personTable" cellspacing="0">  

            <tr>  

                <td width="30%">姓名</td>  

                <td width="30%" align="center">存款</td>  

                <td align="center">电话</td>  

            </tr>  

        </table>  

    </body>  

</html>  

匿名用户
2016-12-17
展开全部

UIWebView加载工程本地网页与本地图片,看如下代码,仅供参考:

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"1" ofType:@"html"];
    NSString *htmlString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
    
    myWebView = [[UIWebView alloc] initWithFrame:self.view.bounds];
    myWebView.delegate = self;
    [self.view addSubview:myWebView];
    
    [myWebView loadHTMLString:htmlString baseURL:[NSURL URLWithString:filePath]];
    
}
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *imagePath = [[NSBundle mainBundle] resourcePath];
    imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
    imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
    NSString * js = [NSString stringWithFormat:@"document.images[0].src='file:/%@//%@'",imagePath,@"icon-04.png"];
    
    [myWebView stringByEvaluatingJavaScriptFromString:js];
    NSString *path = [myWebView stringByEvaluatingJavaScriptFromString:@"document.images[0].src"];
    NSLog(@"path:%@", path);
}



本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式