Atitit.android webview h5運行環境總結

Atitit.android webview h5運行環境總結html

 

1WebView 的使用1java

2Js調用java1android

3Js調用java 跟個swt的比較2web

3.1. SwtBrowserFunction 機制,綁定了個自定義方法2瀏覽器

3.1.1. nativeswing的實現 預綁定一個sendNSCommand方法2ide

4code2函數

5Webview code4ui

 

 

1. WebView 的使用

 

 

2. Js調用java

browExt.play();this

 

  webView.addJavascriptInterface(new browExtObj(this), "browExt");url

 webView.loadUrl(url);

 

實現模式是綁定一個能夠自定義瀏覽器對象

 

做者::  (attilax)>>> 綽號:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 ) 漢字名:艾龍,  EMAIL:1466519819@qq.com

轉載請註明來源: http://blog.csdn.net/attilax

 

3. Js調用java 跟個swt的比較

3.1. SwtBrowserFunction 機制,綁定了個自定義方法

 

 

new CallJavaPaa1(browser"sendNSCommand");

 

BrowserFunction 是個很是有意思的類,它能夠爲 Browser 永久綁定一個 JavaScript 方法,它的構造函數是 BrowserFunction(browser:Browser, name:String),其中 browser 表明 Browser 對象,而 name 則表明綁定該瀏覽器的 JavaScript 方法名,定義了該 BrowserFunction 對象之後,任何在 Browser 顯示的網頁,均可以訪問名爲 name 的 JavaScript 方法。

3.1.1. nativeswing的實現 預綁定一個sendNSCommand方法

 sendNSCommand('play',video);

 

4. code

 

package com.example.atiplat_vodcp;

 

import java.io.File;

import java.io.PrintWriter;

import java.io.StringWriter;

import java.net.URLEncoder;

 

import android.content.Intent;

import android.net.Uri;

import android.os.Environment;

import android.util.Log;

import android.webkit.JavascriptInterface;

import android.widget.Toast;

 

public class browExtObj {

public static String getTrace(Throwable t) {

StringWriter stringWriter = new StringWriter();

PrintWriter writer = new PrintWriter(stringWriter);

t.printStackTrace(writer);

StringBuffer buffer = stringWriter.getBuffer();

return buffer.toString();

}

 

MainActivity mainActivity;

public browExtObj(MainActivity mainActivity2) {

mainActivity = mainActivity2;

}

@JavascriptInterface  //sdk17版本以上加上註解    solu  click btn ma fein ..

public void play() {

try {

 

String mv = "smb://192.168.2.106/e/非藍光/大頭兒子小頭爸爸/新大頭兒子和小頭爸爸之祕密計劃.mp4";

Log.v("::::mv in html ", mv);

Toast.makeText(mainActivity,

"play in html,mv:" + new File(mv).exists(),

Toast.LENGTH_LONG).show();

String mv2 = Environment.getExternalStorageDirectory().getPath()

+ "/Test_Movie.m4v";

mv="http://127.0.0.1:7788/?file="+URLEncoder.encode(mv,"utf-8");

//Log.v("URI html:::::::::", uri.toString());

Uri uri = Uri.parse(mv);

// 調用系統自帶的播放器

Intent intent = new Intent(Intent.ACTION_VIEW);

Log.v("URI html:::::::::", uri.toString());

// intent.setData(uri);

intent.setDataAndType(uri, "video/*");

mainActivity.startActivity(intent);

System.out.println("--form_load finish");

 

} catch (Throwable e) {

Log.i("::::::::::::exp", getTrace(e));

}

}

5. Webview code

WebView webView;

 public static String getTrace(Throwable t) {

        StringWriter stringWriter= new StringWriter();

        PrintWriter writer= new PrintWriter(stringWriter);

        t.printStackTrace(writer);

        StringBuffer buffer= stringWriter.getBuffer();

        return buffer.toString();

    }

@SuppressLint("SetJavaScriptEnabled")

public void form_load() {

try {

 String simple = PinyinX.getSimple(  "Android 提示");

new AlertDialog.Builder(this).setTitle(simple)

 .setMessage("這是一個提示,請肯定").show();

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

// 設置WebView屬性,可以執行Javascript腳本

webView.getSettings().setJavaScriptEnabled(true);

 

webView.loadUrl("http://139.196.164.150:8080/lime/cmsWechat/list.html");

 

} catch (Throwable e) {

Log.i("exp",  getTrace(e));

}

}

 

 

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

 

// //加載須要顯示的網頁

// webview.loadUrl("http://www.51cto.com/");

// //設置Web視圖

//

setContentView(R.layout.activity_main);

form_load();

// setContentView(webView);

}

相關文章
相關標籤/搜索