Atitit.android webview h5運行環境總結html
1. WebView 的使用1java
2. Js調用java1android
3.1. Swt是BrowserFunction 機制,綁定了個自定義方法2瀏覽器
3.1.1. nativeswing的實現 預綁定一個sendNSCommand方法2ide
4. code2函數
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
new CallJavaPaa1(browser, "sendNSCommand");
BrowserFunction 是個很是有意思的類,它能夠爲 Browser 永久綁定一個 JavaScript 方法,它的構造函數是 BrowserFunction(browser:Browser, name:String),其中 browser 表明 Browser 對象,而 name 則表明綁定該瀏覽器的 JavaScript 方法名,定義了該 BrowserFunction 對象之後,任何在 Browser 顯示的網頁,均可以訪問名爲 name 的 JavaScript 方法。
sendNSCommand('play',video);
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));
}
}
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);
}