導航:首頁 > 編程語言 > 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相關的資料

熱點內容
網路如何把人捧紅 瀏覽:961
軟體傳輸文件 瀏覽:184
密碼記錄器ios 瀏覽:412
兩個電腦數據怎麼一樣 瀏覽:829
順豐有什麼買東西的app 瀏覽:377
數位板word 瀏覽:939
win7寬頻連接出現多重網路 瀏覽:268
更改程序圖標c語言 瀏覽:629
網路電視偷停怎麼辦 瀏覽:418
linux連接ftp 瀏覽:512
es文件瀏覽器視頻筆記 瀏覽:874
mac無法打開描述文件 瀏覽:134
什麼軟體打文件 瀏覽:53
資料庫無數據變成0 瀏覽:899
名企筆試如何刷編程題 瀏覽:49
js跳到頁面某地 瀏覽:550
jsp展示clob欄位 瀏覽:779
nyx在網路上是什麼意思 瀏覽:145
樂播農業app是什麼 瀏覽:530
編程框架如何開發 瀏覽:136

友情鏈接