Android基本入门

首先,我想聊一下Android的程序流程:

Android基本入门

其次,我们来谈一下关于Android调js和js调Android:

Android基本入门

下面是一个小demo的源码,相信大家看完后就都能学会了:

MainActivity.java

package com.pd.project3;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String url="http://10.1.6.91:8090/test.html";
        final WebView webView= (WebView)
                findViewById
                        (R.id.webview1);
        webView.loadUrl(url);
        webView.clearCache(true);
        //1.运行android程序
        //2.在eclipse中修改test.html
        //3.在android模拟器中退出程序
        //4.在模拟器程序列表中双击程序启动。看到网页中新内容

        //单击android中的button,去调用网页中的js
        WebSettings settings=webView.getSettings();
        settings.setJavaScriptEnabled(true);

        Button btn= (Button) findViewById(R.id.btn1);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                webView.loadUrl("javascript:setUsername()");
            }
        });

        //把Phone对象公开给js调用
        Phone phone=new Phone();
        //增加接口
        //在js中能通过androidPhone去调用android中的phone对象
        webView.addJavascriptInterface
                (phone,"androidPhone");
    }
    //内部类
    final class Phone{
        //call()可以被js调用
        @JavascriptInterface
        public void call()
        {
            Uri uri=Uri.parse("tel:110");
            Intent intent=new Intent
                    (Intent.ACTION_CALL,uri);
            startActivity(intent);
        }
    }
}

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
   android:orientation="vertical"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.pd.project3.MainActivity">

   <Button
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="修改input"
       android:id="@+id/btn1"
       />
    <WebView
        android:layout_width="match_parent"
        android:layout_height="500px"
        android:id="@+id/webview1"
        >
    </WebView>
</LinearLayout>
 

 

test.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function setUsername(){
    var username=
        document.getElementById("username");
    username.value="android";
}
function call(){
    window.androidPhone.call();
}
</script>
</head>
<body>
<h1 align="center">手机来电加载</h1>
<h2 align="center">v</h2>
<input type="button" value="110" onClick="call"/>
username:<input id="username">
</body>
</html>