[关闭]
@xiaoyixy 2015-10-10T23:16:11.000000Z 字数 640 阅读 1701

从 java 层触发 javascript 函数

Hybrid


    混合式应用的一个关键层面是它的允许原生代码调用 javascript API 的能力,以传送数据,回调和事件。由于在 WebKit 中没有可直接调用的 API,开发者常使用 loadUrl() 函数来完成这个任务。loadUrl() 函数请求 WebView 加载和执行特定的 URL。
    有效的 URL 如下:
        scheme : [hostaddress][params]

    scheme : 协议,http, https, ftp, JavaScript, or karura (karura://karura.js);
    hostaddress : 为服务提供的可选地址;
    params : 字段
注:javascript 协议的格式:JavaScript : sScript

    当一个浏览器引擎被请求以 JavaScript URL 的形式来进行浏览时,将会执行其伴随的 JavaScript 而无需重新加载 DOM 。这是新型浏览器一个非常重要的特性,我们可利用这个设计模式实现从 Java 层向 JavaScript 传递参数,如下所做:
        1、创建一个字符缓冲区来存放你想调用的 JavaScript ;
        2、为这个字符串准备 JavaScript 协议;
        3、调用 loadURL() 方法,传递一个字符串作为参数
    例如,如果我们想在 WebView 中显示一个提醒对话窗口作为某些 Java 代码的执行结果:
    String js = "alert('Alert from Java');";
    WebView.loadUrl("JavaScript:" + js);
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注