Objective-c与js相互调用

原文地址:http://blog.csdn.net/ikmb/article/details/6716831

一 objective-c调用js

  1. NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
  2. //注: webView是UIWebView实例

二 js调用objective-c

1.obj-c部分

  1. - (void)viewDidLoad {
  2. [super viewDidLoad];
  3. self.myWebView.delegate=self;
  4. }
  5. //-------------------------------------------------
  6. - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
  7. {
  8. //此url解析规则自己定义
  9. NSString* rurl=[[request URL] absoluteString];
  10. if ([rurl hasPrefix:@"protocol://"]) {
  11. UIAlertView* alert=[[UIAlertView alloc]initWithTitle:@"Called by JavaScript"
  12. message:@"You‘ve called iPhone provided control from javascript!!" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
  13. [alert show];
  14. [alert release];
  15. return false;
  16. }
  17. return true;
  18. }

2. js部分

  1. function sendCommand(cmd,param){
  2. var url="protocol://"+cmd+":"+param;
  3. document.location = url;
  4. }

3.html部分

  1. <input type="button" value="call obj-c" onClick="sendCommand(‘act‘,‘param‘);" />
时间: 2024-10-09 12:33:41

Objective-c与js相互调用的相关文章

关于action script与js相互调用的Security Error问题

大家都知道,as和js相互调用可以通过ExternalInterface.call和ExternalInterface.addCallback来进行. 比较好的做法是使用之前通过ExternalInterface.available来检测一下是否可用. 然而被坑了的是,这个ExternalInterface.available并不检测安全限制,也就是即使ExternalInterface.available=true,还是可能报错. 为了防止报错阻断程序正常运行,还需要再包一层try catch

php与js相互调用

2019-2-3 php与js相互调用<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><script type="text/javascript"> function test() { var t1=3; t1 = t1+2; alert(t1); return t1; } </script> <?php $name='J

WebBrowser(IE) 与 JS 相互调用

在开发中我们经常将WebBrowser控件嵌入Winform 程序来浏览网页,既然是网页那么少不了JS.下面就让我们来说说他们两之间的相互调用. 在C#封装的浏览器内核中,Chromium 内核封装有Xilium.Cefglue.Cefsharp,Webkit 内核封装 Webkit.Net .OpenWebKitSharp等. 但是说到和JS的调用,不得不说还是IE 的WebBrowser 最为简单方便.至于IE 为啥方便而其他的不方便,以后我会写文章分析. 下面我们还是先看看WebBrows

flex与js相互调用

1.flex调用js方法 调用方法例如:ExternalInterface.call("UploadComplete",oldName,uidName,_dir+"/"+uidName+type); 第一个是js方法名,后面几个是给这个js方法传的参数.这个方法必须在网页的js中注册,否则会调用失败. 需要注意的是调用之前需要检查网页的js是否已完成加载,用ExternalInterface.available可是判断. 注:这种调用方法是可以有返回值的,例如:va

WebView使用详解(一)——Native与JS相互调用(附JadX反编译)

前言:念念不忘,必有回响,永远坚持你所坚持的! 一直在用WebView,还没有系统的总结过它的用法,下面就系统的总结下,分享给大家 一.基本用法 1.加载在线URL void loadUrl(String url) 这个函数主要加载url所对应的网页地址,或者用于调用网页中的指定的JS方法(调用js方法的用法,后面会讲),但有一点必须注意的是:loadUrl()必须在主线程中执行!!!否则就会报错!!!.注意:加载在线网页地址是会用到联网permission权限的,所以需要在AndroidMan

as3.0和js相互调用,js控制flash的颜色

程序应用场景:flash是一副地图,地图上一单击,就调用js,弹出一个对话框,显示一些自己想要的信息:js定时调用as提供的方法,然后去改变flash的颜色. 以下是as代码: import flash.events.MouseEvent; import flash.text.TextField; //给每一栋楼增加监听事件 mc0001.addEventListener(MouseEvent.CLICK,onClick); mc0004.addEventListener(MouseEvent.

android WebView java与js相互调用

android webView js 使用1.js调用java    1.1 js代码    <script type="text/javascript">        function call(){            window.androidInterface.call('02585818031');        }    </script> 1.2.java代码    package com.example.webview;    import

Android js相互调用

一.webview相当于android中的浏览器,基于webkit开发,可以浏览网页文件,支持css javas cript 以及html 1 webview.getSettings().setJavaScriptEnabled(true);//允许JS执行 2 settings.setJavaScriptCanOpenWindowsAutomatically(true);//允许JS执行 3 webview.addJavascriptInterface(object,"name");

ASP.NET的后台代码和前台JS代码相互调用

在实际的Web开发中,我们可能会常常遇到后台调用前台JS代码或者前台JS调用后台代码的情况.今天就把比较实用的前后台相互调用的方法总结出来和大家分享. <1>后台代码调用前台JS代码 一.说到后台代码调用前台的JS代码很多人首先就会想到使用 ClientScript.RegisterStartupScript()方法,该方法主要是注册启动脚本文本,即在后台执行调用前台JS代码 该方法有两个重载, 1.ClientScript.RegisterStartupScript(Type type,st