@xiaoyixy
2015-10-10T23:16:11.000000Z
字数 640
阅读 1701
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);