iOS的WebView中使用javascript调用原生的api

1. 首先在javascript中加入相关代码

$(‘.content .saveCode‘).on(‘touchstart‘, function () {//touchstart
        if (temp == 0) {
            jump();
        }
        if (temp == 1) { android.savePic(image.src); }

    });

    function jump() {//IOS
        var touchstart = true;
        window.location = "/touchstart";     //改变URL  注意:要使用"/"分隔符
    }

    function postStr() {//IOS
        return image.src;
    }

2. iOS保存图片到本地代码

// 当加载完网页取到imageurl- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    _urlString = [_myWebView stringByEvaluatingJavaScriptFromString:@"postStr();"];
    NSLog(@"%@",_urlString);

}

// 调用次序 - shouldStart->FinishLoad->回调block函数- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if ([request.mainDocumentURL.relativePath isEqualToString:@"/touchstart"]) {
        UIImageFromURL( [NSURL URLWithString:_urlString], ^( UIImage * image )
                       {
                           UIImageWriteToSavedPhotosAlbum( image, self, @selector( onSaveComplete:didFinishSavingWithError:contextInfo: ), nil );
                       }, ^(void){
                           NSLog(@"error!");
                       });

        return false;
    }
    return  true;
}

void UIImageFromURL( NSURL * URL, void (^imageBlock)(UIImage * image), void (^errorBlock)(void) )
{
    dispatch_async( dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0 ), ^(void)
                   {
                       NSData * data = [[NSData alloc] initWithContentsOfURL:URL];
                       UIImage * image = [[UIImage alloc] initWithData:data];
                       dispatch_async( dispatch_get_main_queue(), ^(void){
                           if( image != nil )
                           {
                               imageBlock( image );
                           } else {
                               errorBlock();
                           }
                       });
                   });
}
时间: 2024-09-29 01:34:51

iOS的WebView中使用javascript调用原生的api的相关文章

[Android]Webview中JS接口调用Java-版本问题

问题: The javascript to java bridge on 2.3 Gingerbread is causing crashes. This is 100% reproducible using the WebViewDemo application from here: http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/Samples/WebViewDemo. Note: The project

Android WebView中的JavaScript代码使用(转载)

转载来源:http://www.cnblogs.com/mengdd/archive/2013/03/02/2940185.html 本篇文章主要介绍WebView中的JavaScript代码的执行相关,已经JS代码与Android代码的互相调用. (因为本人对Web开发并不是很熟悉,所以如果有哪些地方说得不对,还请指正.) 在WebView中使用JavaScript 如果你想要载入的页面中用了JavaScript,你必须为你的WebView使能JavaScript. 一旦使能之后,你也可以自己

Firefox中利用javascript调用本地程序

http://blog.csdn.net/jensonhjt/article/details/1765557 script>function hello () {  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  var file = Components.classes["@mozilla.org/file/local;1"].createInstance(

UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv

原文:UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 2018-12-30 14:08 UWP 中使用 WebView 时可以在网页中额外执行一些代码.于是你几乎可以在网页上做任何事情,那些你可以在浏览器控制台中做的事情. 本文将介绍做法. 本文内容 准备环境 执行 JavaScript 代码 模拟用户输入 JavaScript eval(string

在webView 中使用JS 调用 Android / IOS的函数 Function

最近做一个项目,混合了NativeCode 和 HTML,为了便于JS 调用App的一些方法,统一封装一个Js方法,记录如下 Android 端首先要再WebView中允许JS的调用 WebView myWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); myWebView

在webView中使用JAVAScript定位

目的: 在我们IOS开发中,有时我们需要用webView来打开一些html文件,并且我需要需要定位到某一行(效果如下图),左图是想要实现的效果.那么如何做到呢?                                                    步骤: 1. 先来分析一下html5中如何写javaScript代码,如下图 !DOCTYPE html> <html> <head> <title>帮助说明 - 网易彩票</title> &

使用WebView中的Javascript和本地代码交互

在加载url之前,使用 Webview的addJavascriptInterface方法注册本地代码和javascript的绑定. 比如js里面调用Toast.show(message),那么就需要在addJavascriptInterface中将本地的类绑定到js里面的类名Toast. 例如:mWebview.addJavascriptInterface(new ShowToast(), JS_BIND_NAME_TOAST); 在本地类ShowToast中实现public方法show(str

Android WebView使用之JavaScript调用Java代码注意事项

1.被调用的函数上方要添加注释(@android.webkit.JavascriptInterface);否则JavaScript无法找到该方法.

WebView 中重写javascript 常用函数

常规函数   javascript 常规函数包括以下3个函数:  (1)alert函数:显示一个警告对话框,包括一个OK按钮. 对应:http://www.dreamdu.com/javascript/window.confirm/(2)confirm函数:显示一个确认对话框,包括OK.Cancel按钮. 对应:http://www.dreamdu.com/javascript/window.alert/(3)prompt函数:显示一个输入对话框,提示等待用户输入. 对应:http://www.