• Atitit.android webview h5运行环境总结


    Atitit.android webview h5运行环境总结

     

    1WebView 的使用1

    2Js调用java1

    3Js调用java 跟个swt的比较2

    3.1. SwtBrowserFunction 机制,绑定了个自定义方法2

    3.1.1. nativeswing的实现 预绑定一个sendNSCommand方法2

    4code2

    5Webview code4

     

     

    1. WebView 的使用

     

     

    2. Js调用java

    browExt.play();

     

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

     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);

    }

     

     

  • 相关阅读:
    Spring MVC 核心组件详解
    Spring MVC 入门就这一篇
    Spring 事务解决方案
    【UGUI源码分析】Unity遮罩之Mask详细解读
    游戏开发中不同时区下的时间问题
    ARTS第十三周(阅读Tomcat源码)
    Win10 电脑安装.NET低版本提示“这台计算机中已经安装了 .NET Framwork 4.6.2或版本更高的更新”问题
    Dynamics 365 Setup 提示SqlServer 存在
    Dynamics CRM "Verification of prerequisites for Domain Controller promotion failed. Certificate Server is installed."
    Dynamics CRM
  • 原文地址:https://www.cnblogs.com/attilax/p/15198645.html
Copyright © 2020-2023  润新知