導航:首頁 > 編程語言 > ios與js交互demo

ios與js交互demo

發布時間:2023-09-03 10:55:28

js怎麼跟Android和ios進行交互

與android交互:回
function onBtnClick() {
window.ncp.callOnJs("id");
}

與答objective-c交互:
function onBtnClick(cmd,parameter1)
{
document.write(Date());
document.location="objc://"+callOnJs+":/"+id;
}

㈡ 如何用js調用ios

基本流程:

先看一下Web中,我們給h1標簽添加一個onclick事件,讓它在被點擊之後,修改當前的url。
Web中的HTML代碼

<html>
<head>
<script>

function getInfo(name)
{
window.location = "/getInfo/"+name;
}

</script>

</head>

<body>
<h1 onclick="getInfo('why')">Name</h1>
</body>

</html>

iOS中,先拖拽WebView,訪問localhost,然後通過WebView的委託事件監聽url跳轉操作,並且把跳轉截取下來。
也就是說,在onclick的時候,普通瀏覽器灰跳轉到那個url,但是在iOS的這個WebView裡面,這個跳轉會被攔截,
用這種方式可以巧妙地實現JS調用iOS的原生代碼:

//
// DWViewController.m
// DareWayApp
//
// Created by why on 14-6-3.
// Copyright (c) 2014年 DareWay. All rights reserved.
//

#import "DWViewController.h"

@interface DWViewController ()

@property (weak, nonatomic) IBOutlet UIWebView *myWebview; // 主頁面

@end

@implementation DWViewController

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

// 適配iOS6的狀態欄
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
_myWebview.frame = CGRectMake(0,20,self.view.frame.size.width,self.view.frame.size.height-20);
}

// 載入制定的URL
NSURL *url =[NSURL URLWithString:@"http://localhost"];
NSURLRequest *request =[NSURLRequest requestWithURL:url];
[_myWebview setDelegate:self];
[_myWebview loadRequest:request];

}

// 網頁中的每一個請求都會被觸發
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{

// 每次跳轉時候判斷URL

if([request.mainDocumentURL.relativePath isEqualToString:@"/getInfo/why"])
{
NSLog(@"why");
return NO;
}

return YES;
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end

㈢ (IOS)UIWebView和javaScript之間是怎麼交互的

UIWebView是iOS SDK中渲染網面的控制項,在顯示網頁的時候,可以hack網頁然後顯示想顯示的內容。其中就要用至JavaScript的知識,而UIWebView與javascript交互的 方法就是,有了這個方法可以通過objc調用 javascript,可以注入 javascript
Js調用〇C方法原理就是利用UIWebView重定向請求,傳一些命令到我們的 UIWebView,在UIWebView的delegate的方法中接收這些命令,並根據命令執行相應的objc 方法。這樣就相當於在javascript中調用objc的方法。

擴展: 在android中,有固有組件webview,經過設置可以讓它支持我們的js的渲染,然後在代碼中設置(WebViewClient/WebChromeClient)讓應用跳轉頁面時在本webview中跳 轉,通過webview.loarl (String str)方法可以在需要的地方載入我們前端的頁面或者調用 前端所定義的方法(wv.loadUrl(「javascript:sendDataToAndroid(『我是js,能看到嗎』)」);),再通過JavascriptInterface介面設置前端和android通訊的標識,
wv.addJavascriptInterface(new MJavascriptInterface(getApplicationContext()), 「WebViewFunc」);
這樣前端就可以在頁面上調用我們的方法了,funl方法是在android中定義的 Window.WebViewFunc.fun1 ();
總之,前端和android或者ios進行結合開發,被稱之為混合開發,原理就是在原生的開發語言中,提供了一個組件webview,這個組件就是原生語言的瀏覽器,但是得自行設置讓其能夠完美支持我們的應用,需要設置對應的標識,然後連接起來,稱之為 JavascriptInterfac。

㈣ iOS WKWebView JS 與 原生交互小結

目前iOS項目中 Webview 幾乎都會用到,iOS 8 之前使用UIWebView,iOS 8 之後 Apple 就不推薦使用了,目前已經放棄了,如果項目中存在就無法上架了,需要轉為WKWebView了,說實話 UIWebView 是有性能上的缺陷,內存優化不夠友好等,但是不得不說這是老的iOS開發人員用的最熟練熟悉的了,用起來得心應手。非迫不得已還真不願轉到WKWebView。好吧,既然已經這樣了,又何必苦苦單戀一支花呢?

看了網上教程很多,自己使用小結一下,簡單易用,本文適用於菜鳥級開發,廢話不說了,

最主要的方法:發送消息

注意:對象名和方法名jumpUserProtocol名字的一致,參數可以是常用的NSArray,NSDictionary等類型,先說下在這個Demo中其實沒用上,用的方法名判斷的。

注意: addScriptMessageHandler

name為方法名 ,和JS 中的保持一致,添加腳本,相當於給Webview添加一個監聽,有這個功能來處理JS。

在WKScriptMessageHandler代理方法中處理回調,實現自己的邏輯。

上面就是JS調用OC原生實現。

這個其實很簡單,就一個方法:

閱讀全文

與ios與js交互demo相關的資料

熱點內容
U盤啟動載入資源文件失敗 瀏覽:459
怎樣把ug的pdf文件導入cad 瀏覽:148
c盤文件刪不了怎麼辦 瀏覽:248
win7無線網路禁用 瀏覽:455
如何把電腦文件夾圖片放置在一起 瀏覽:702
如何對訪談法進行數據分析 瀏覽:388
國土三調文件用什麼軟體什麼打開 瀏覽:651
數控銑床編程特點是什麼 瀏覽:119
飛鴿傳輸一次能傳多少文件 瀏覽:488
手機照片許可權怎麼設置密碼 瀏覽:341
es文件瀏覽器怎麼隱藏 瀏覽:649
刪除的文件為什麼恢復 瀏覽:314
血緣詛咒怎麼升級 瀏覽:604
文件分享到微信怎麼操作 瀏覽:393
tmx文件trados 瀏覽:704
大數據與會計選課怎麼選 瀏覽:684
網路的不穩定因素有哪些 瀏覽:950
獵豹瀏覽器javascript 瀏覽:723
哪個列印軟體保存數據時間長 瀏覽:873
ps合並後源文件 瀏覽:74

友情鏈接