亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

iOS開發(fā)之用javascript調(diào)用oc方法而非url

 更新時(shí)間:2016年07月28日 11:45:40   作者:小小流浪的漢子  
本文說的是非攔截URL進(jìn)行判斷,然后調(diào)用oc方法這種調(diào)用手段,所以不用討論說為什么不用url這種方法,具體看需求,有需要的可以參考。

先來看看如何在項(xiàng)目中的webview上面點(diǎn)擊一個(gè)按鈕,就能達(dá)到調(diào)用oc代碼

上面的這個(gè)頁面是webview里面嵌套的一個(gè)項(xiàng)目的網(wǎng)頁,打印訂單點(diǎn)擊之后(點(diǎn)擊事件是一個(gè)js方法),需要調(diào)用oc里面集成好的藍(lán)牙打印機(jī)功能,來完成打印。

所以這里只能用js代碼來直接調(diào)用oc代碼。

1.首先創(chuàng)建一個(gè)iOS類,因?yàn)檫@里一般都需要安卓端做一套,iOS端做一套,所以一般這樣命名以示區(qū)別

.h
#import <Foundation/Foundation.h>
#import <JavaScriptCore/JavaScriptCore.h>

/**
 * js調(diào)用oc里 main的代碼,需要借助這個(gè)協(xié)議才行
 */
@protocol JSObjectProtocol <JSExport>

@required
#pragma mark -js調(diào)用該oc方法,并且將jsonstring打印出來
- (void)print:(NSString *)jsonString;

@end


@interface iOS : NSObject<JSObjectProtocol>



@end
.m

@implementation iOS


#pragma mark -打印jsonString
- (void)print:(NSString *)jsonString{

  //打印的具體事件
}

2. 在網(wǎng)頁加載結(jié)束之后調(diào)用注冊(cè)iOS注冊(cè)

#pragma mark -網(wǎng)頁加載完畢,注冊(cè)ios對(duì)象,并且自動(dòng)檢查打印機(jī)是否自動(dòng)連接
-(void)webViewDidFinishLoad:(UIWebView *)webView{

  //首先創(chuàng)建JSContext 對(duì)象(此處通過當(dāng)前webView的鍵獲取到j(luò)scontext)
  //這個(gè)對(duì)象必須創(chuàng)建出來,否則會(huì)無法調(diào)用到協(xié)議里的方法
  iOS *ios = [[iOS alloc] init];

  JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

  context[@"iOS"] = ios;

}

3. 在js的點(diǎn)擊事件里面類似下面這樣調(diào)用即可(下面這段代碼寫在對(duì)應(yīng)的js代碼里面,而非你的oc代碼里面)

 if (window["Android"] && window["Android"]["jsPrint"]) {
  var andPrint = window.Android.jsPrint(JSON.stringify(d));
 } else if (window["iOS"] && window["iOS"]["print"]) {

   window["iOS"]["print"](JSON.stringify(d));

} else {
   this.alert.autoCloseTip("找不到打印方法!", 1000);
 }

以上就是關(guān)于iOS如何使用javascript代碼調(diào)用oc方法的全部內(nèi)容,希望對(duì)大家學(xué)習(xí)IOS開發(fā)有所幫助。希望大家多多支持腳本之家。

相關(guān)文章

  • iOS開發(fā)之如何獲取視圖在屏幕中顯示的位置

    iOS開發(fā)之如何獲取視圖在屏幕中顯示的位置

    這篇文章主要給大家介紹了關(guān)于iOS開發(fā)之如何獲取視圖在屏幕上顯示的位置,以及ios 獲取控件相對(duì)屏幕的位置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • iOS 底層alloc init new 源碼流程示例分析

    iOS 底層alloc init new 源碼流程示例分析

    這篇文章主要為大家介紹了iOS 底層alloc init new 源碼流程示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • iOS開發(fā)微信收款到賬語音提醒功能思路詳解

    iOS開發(fā)微信收款到賬語音提醒功能思路詳解

    這篇文章主要介紹了iOS開發(fā)微信收款到賬語音提醒功能思路詳解,需要的朋友可以參考下
    2017-09-09
  • iOS中的UIKeyboard鍵盤視圖使用方法小結(jié)

    iOS中的UIKeyboard鍵盤視圖使用方法小結(jié)

    鍵盤視圖我們平時(shí)在做App的時(shí)候都要調(diào)用得到,這里我們就來整理一下iOS中的UIKeyboard鍵盤視圖使用方法小結(jié),需要的朋友可以參考下
    2016-06-06
  • iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼

    iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼

    如果你剛剛拍攝了圖片,在使用微信/QQ發(fā)生消息時(shí)會(huì)顯示“你可能要發(fā)送的圖片”,這個(gè)功能非常人性化,怎么實(shí)現(xiàn)的呢?下面小編給大家分享iOS實(shí)現(xiàn)微信/QQ顯示最近拍攝圖片的功能實(shí)例代碼,一起看看吧
    2017-03-03
  • 詳解IOS如何防止抓包

    詳解IOS如何防止抓包

    為了防止被抓包那么就要了解抓包的原理。本文將詳細(xì)介紹IOS如何防止抓包,感興趣的同學(xué),可以參考下。
    2021-06-06
  • iOS11帶來的技術(shù)變化及注意事項(xiàng)

    iOS11帶來的技術(shù)變化及注意事項(xiàng)

    這篇文章給大家介紹了ios11帶來了技術(shù)變化及注意事項(xiàng),在相冊(cè)權(quán)限上有很大變化,具體內(nèi)容詳情大家參考下本文
    2017-09-09
  • 僅需幾行代碼實(shí)現(xiàn)方便易用的狀態(tài)欄指示器

    僅需幾行代碼實(shí)現(xiàn)方便易用的狀態(tài)欄指示器

    本文通過僅僅數(shù)行代碼實(shí)現(xiàn)了非常方便易用的狀態(tài)欄指示器,比如微博項(xiàng)目的微博數(shù)提醒框,需要的朋友可以參考下
    2015-08-08
  • iOS開發(fā)微信支付的方法

    iOS開發(fā)微信支付的方法

    這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)微信支付的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • iOS中獲取系統(tǒng)相冊(cè)中的圖片實(shí)例

    iOS中獲取系統(tǒng)相冊(cè)中的圖片實(shí)例

    這篇文章主要介紹了iOS中獲取系統(tǒng)相冊(cè)中的圖片實(shí)例,具有一定的參考價(jià)值沒有需要的朋友可以了解一下。
    2016-11-11

最新評(píng)論