当前位置:编程学习 > JAVA >>

在android中实现javascript编程

运行如图:
 
 
 
 
 
 
\
 
 
 
示例是插入排序的例子。
 
 
 
 
主要的思路就是在webview中将编辑后的代码保存为一个html文件中,再用另一个WebView来加载。
 
直接上代码。
 
首先在manifest文件中添加几个权限:
 
 
[plain] 
<!-- 链接互联网权限 -->  
   <uses-permission android:name="android.permission.INTERNET" />  
   <!-- 在SDCard中创建与删除文件权限 -->    
   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>    
   <!-- 往SDCard写入数据权限 -->    
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>    
 
<!-- 链接互联网权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 在SDCard中创建与删除文件权限 -->  
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
    <!-- 往SDCard写入数据权限 -->  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
布局文件:
 
 
[html]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".MainActivity" >  
  
  
    <WebView  
        android:id="@+id/webView"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent" />  
    <WebView  
        android:id="@+id/swebView"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:visibility="gone" />  
  
</RelativeLayout>  
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
 
 
    <WebView
        android:id="@+id/webView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
    <WebView
        android:id="@+id/swebView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:visibility="gone" />
 
</RelativeLayout>
主activity:
 
 
[java] 
package com.example.webtest1;  
  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
  
import org.apache.http.util.EncodingUtils;  
  
import android.os.Bundle;  
import android.os.Environment;  
import android.os.Handler;  
import android.app.Activity;  
import android.view.Menu;  
import android.view.MenuItem;  
import android.webkit.WebView;  
import android.widget.Toast;  
  
public class MainActivity extends Activity {  
    private WebView mWebView;  
    private WebView sWebView;  
    private Handler mHandler;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        mWebView = (WebView) findViewById(R.id.webView);  
        sWebView=(WebView) findViewById(R.id.swebView);  
        sWebView.getSettings().setJavaScriptEnabled(true);  
  
        mHandler=new Handler();  
        // 得到WebSettings对象,设置支持JavaScript参数     
        // 如果访问的页面中有JavaScript,则WebView必须设置支持JavaScript ,否则显示空白页面     
        mWebView.getSettings().setJavaScriptEnabled(true);   
        sWebView.getSettings().setJavaScriptEnabled(true);  
        mWebView.getSettings().setBuiltInZoomControls(true);    
        // 加载URL     
        mWebView.loadUrl("file:///android_asset/web/index.html");  
        //sWebView.loadUrl("file:///android_asset/result.html");   
        final class JSInterface{  
            public void clickOnAndroid(final String jsCode) {   
                mHandler.post(new Runnable() {  
                    public void run() {    
                        //Toast.makeText(MainActivity.this, "测试调用java"+s, Toast.LENGTH_LONG).show();   
                        mWebView.setVisibility(8);  
                        String html="";   
                        html += "<head>";    
                        html += "<body>"+&qu
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,