最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

/**
 * js調(diào)用oc里 main的代碼,需要借助這個協(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)用注冊iOS注冊

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

  //首先創(chuàng)建JSContext 對象(此處通過當(dāng)前webView的鍵獲取到j(luò)scontext)
  //這個對象必須創(chuàng)建出來,否則會無法調(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)用即可(下面這段代碼寫在對應(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)容,希望對大家學(xué)習(xí)IOS開發(fā)有所幫助。希望大家多多支持腳本之家。

相關(guān)文章

  • iOS自學(xué)筆記之XIB的使用教程

    iOS自學(xué)筆記之XIB的使用教程

    本篇文章主要介紹了iOS自學(xué)筆記之XIB的使用教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • iOS開發(fā)之tableView實(shí)現(xiàn)左滑刪除功能

    iOS開發(fā)之tableView實(shí)現(xiàn)左滑刪除功能

    我們在使用一些應(yīng)用的時候,在滑動一些聯(lián)系人的某一行的時候,會出現(xiàn)刪除、置頂、更多等等的按鈕,下面這篇文章主要就介紹了iOS用tableView實(shí)現(xiàn)左劃刪除功能的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • iOS的UI開發(fā)中UITabBarControlle的基本使用教程

    iOS的UI開發(fā)中UITabBarControlle的基本使用教程

    這篇文章主要介紹了iOS的UI開發(fā)中UITabBarControlle的基本使用教程,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-12-12
  • iOS開發(fā)使用JSON解析網(wǎng)絡(luò)數(shù)據(jù)

    iOS開發(fā)使用JSON解析網(wǎng)絡(luò)數(shù)據(jù)

    JSON是一種輕量級的數(shù)據(jù)格式,一般用于數(shù)據(jù)交互,服務(wù)器返回給客戶端的數(shù)據(jù),一般都是JSON格式或者XML格式(文件下載除外)下面我們就看下在IOS開發(fā)中如何結(jié)合json呢
    2016-02-02
  • IOS圖片的原生(Graphics)詳解及實(shí)例

    IOS圖片的原生(Graphics)詳解及實(shí)例

    這篇文章主要介紹了IOS圖片的原生(Graphics)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • iOS CoreData 增刪改查詳解

    iOS CoreData 增刪改查詳解

    這篇文章主要為大家詳細(xì)介紹了iOS CoreData 增刪改查的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS 在線視頻生成GIF圖功能的方法

    iOS 在線視頻生成GIF圖功能的方法

    本篇文章主要介紹了iOS 在線視頻生成GIF圖功能的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • iOS 邊下邊播的實(shí)現(xiàn)代碼

    iOS 邊下邊播的實(shí)現(xiàn)代碼

    在之前項(xiàng)目中使用的是AVPlayer直接播放URL地址,但是不知道是相機(jī)的wifi不夠穩(wěn)定還是代碼的問題,app總是出現(xiàn)緩沖卡頓。后來考慮改成邊下邊播模式,下面小編給大家?guī)砹薸OS 邊下邊播的實(shí)現(xiàn)代碼,需要的朋友參考下吧
    2017-11-11
  • ios系統(tǒng)下刪除文件的代碼

    ios系統(tǒng)下刪除文件的代碼

    本文給大家總結(jié)了幾則在IOS系統(tǒng)下刪除文件的代碼,十分的實(shí)用,有需要的小伙伴可以參考下。
    2015-05-05
  • iOS10實(shí)現(xiàn)推送功能時的注意點(diǎn)和問題總結(jié)

    iOS10實(shí)現(xiàn)推送功能時的注意點(diǎn)和問題總結(jié)

    很多朋友都反饋,發(fā)現(xiàn)了iOS9升級到iOS10推送功能不正常的問題,所以這篇文章總結(jié)了一下要點(diǎn),親們可以根據(jù)以下步驟,逐步排查問題,也可以逐步實(shí)現(xiàn)iOS10的推送功能。下面來一起看看吧。
    2016-09-09

最新評論

柞水县| 静乐县| 沙田区| 中江县| 益阳市| 嵊州市| 柏乡县| 江口县| 遂川县| 桓仁| 晋宁县| 邹平县| 任丘市| 瑞金市| 汉沽区| 金溪县| 温宿县| 临江市| 浮梁县| 黄龙县| 鹤岗市| 都兰县| 桦南县| 开阳县| 德钦县| 绿春县| 瑞丽市| 渝中区| 南丹县| 远安县| 周口市| 淄博市| 南澳县| 广昌县| 万载县| 绥中县| 建昌县| 静海县| 崇左市| 长乐市| 恩平市|