1. 程式人生 > >iOS開發 與H5進行互動

iOS開發 與H5進行互動

1. H5呼叫 iOS

呼叫

          window.location.href = 'TS://phone';

接收

- (BOOL)webView:(nonnull UIWebView *)webView shouldStartLoadWithRequest:(nonnull NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{

    NSString *url = request.URL.absoluteString;
    NSRange range = [url rangeOfString:@"TS://"
]; NSUInteger location = range.location; // xmg://openCamera if (location != NSNotFound) { NSString *str = [url substringFromIndex:location + range.length]; NSLog(@"%@", str); SEL sel = NSSelectorFromString(str); [self performSelector:sel withObject:nil]; } return
YES; }

2. iOS呼叫 H5

  • 直接 load

  • 通過 JS


    NSString *str2 =@"document.getElementById('footer').remove();";
    [webView stringByEvaluatingJavaScriptFromString:str2];

3. 發訊息


      window.webkit.messageHandlers.AppModel.postMessage({body: response});

4. 引數


    NSString *offerId = [NSString
getIdFromUrlParams:abString andCode:@"offerId"];

5. 上一段程式碼


$(function(){
        $(".btn_share").click(function() {
            var is_app = "";

            //這裡直接和android與ios互動
            if(is_app == 'android'){
                var r = "{\"body\":'shareAction'}";
                window.APPmai.get_id(r);
            }else if(is_app == 'ios'){
                window.webkit.messageHandlers.APPmodel.postMessage({body:'shareAction'});
            }else{
                alert("請用android或ios開啟");
            }
        });
    })

6. 判斷裝置型別(JS)


    function browserRedirect() {
        var sUserAgent = navigator.userAgent.toLowerCase();
        var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
        var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
        var bIsMidp = sUserAgent.match(/midp/i) == "midp";
        var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
        var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
        var bIsAndroid = sUserAgent.match(/android/i) == "android";
        var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
        var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
        document.writeln("您的瀏覽裝置為:");
        if (  bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
            document.writeln("android 類似以及其他裝置");
        }
        else  if (bIsIpad )
        {
            document.writeln("ipad");
        }
        else  if (bIsIphoneOs )
        {
            document.writeln("iphone");
        }
        else {
            document.writeln("pc");
        }
    }

    browserRedirect();

相關推薦

iOS開發 H5進行互動

1. H5呼叫 iOS 呼叫 window.location.href = 'TS://phone'; 接收 - (BOOL)webView:(nonnull UIWebV

iOS開發H5互動的整理總結

UIWebView delegate 協議方法 //UIWebView自帶了一個方法, 可以直接呼叫JS程式碼(轉化為string型別的js程式碼) - (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString

iOS OCH5網頁互動之OC傳值給JS(WKWebView)

1.OC傳值給JS的程式碼:// 頁面載入完成之後呼叫 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)

iOS原生H5頁面互動

一、原生框架<JavaScriptCore/JavaScriptCore> (1)JavaScriptCore: 是一種JavaScript引擎,主要為webKit提供指令碼處理能力,可以JS呼叫OC,也可以OC呼叫JS;   (2) JSContext: 代表

iOS原生H5雙向互動總結

1,單向通訊時候:webView可以利用代理方法擷取JS,來呼叫原生方法 其代理方法如下: - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)reque

h5開發IOS開發H5混合開發常見的坑

最近做 iOS H5 專案,需要針對 iOS 的 webView 做適配,發現幾個非常噁心的 bug。 因為現在據統計 iOS7 的佔比超過80%,所以適配主要針對 iOS7,但是 iOS7 不同版本缺有不同的 bug,真是讓人蛋疼。 iOS 7.0 input 元素

iOS開發H5Native互動之JSBridge技術

做過混合開發的很多人都知道Ionic和PhoneGap之類的框架,這些框架在web基礎上包了一層Native,然後通過Bridge技術使得js可以呼叫視訊、位置、音訊等功能。本文就是介紹這層Bridge的互動原理,通過閱讀本文你可以瞭解到js與ios及andro

iOSH5互動【WKWebView】

H5因其及時響應的更新速度媲美著需求的速度和較高的趣味性受到越來越多的使用者的青睞。目前,大多數的應用中都嵌入了H5。優點非常明顯。那麼在iOS應用中如何嵌入一個H5,並且和它進行互動就成了一個勢必要掌

通過WebViewH5進行完美互動

此篇講解的是Android通過WebView與H5的基礎互動,分直接呼叫無參方法與傳入方法引數。 文章目錄: Android呼叫Js,傳入Js需要的資料 Js呼叫Android,觸發android功能,如拍照 亦或 跳轉Androi的一些介面 攔截HTML

iOS開發-Cordova配置-Cordova互動-Cordova外掛開發iOS專案接入Cordova-Cordova跳轉外部網頁

本期內容: Cordova 詳細配置 Cordova 接入iOS專案 Cordova 訪問外部網頁 Cordova iOS互動外掛開發 Cordova簡介 Cordova是一個開源的移動開發框架,它允許你使用WEB開發技術(HTML5、CSS3、JavaS

PHP執行python程式的方法(PHPscrapy進行互動)

首先看PHP程式碼 ​system('PATH\python.exe PATH\xxx.py ' (PARAMS)); 一般我們執行python檔案的方法是 python xxx.py, 那麼,對於PHP來執行的話,同樣是python xxx.py 但是PHP不知道我們

以太坊學習(7)利用RPC-JSON【post|get】節點進行互動【2】關於呼叫eth_sendTransaction失敗的檢查方法

關於呼叫eth_sendTransaction失敗的檢查方法 本篇主要講利用JSON-RPC介面呼叫以太坊中已經部署好的合約函式時,如果出現呼叫失敗的檢查方法。  前置知識: 呼叫eth_sendTransaction所需的abi編碼:https:/

表單標籤,使用者進行互動

HTML表單(form) 表單是可以把瀏覽者輸入的資料傳送到伺服器端,然後伺服器端程式 語法: <form method="傳送方式" action="伺服器檔案"> 文字輸入框、密碼輸入框 當用戶要在表單中鍵入字母、數字等內容時,就會用到文

java用post方法獲取json資料,伺服器進行互動

下載好以後匯入依賴包,下面sendInfo方法就是互動方法,可以直接拿去用: public static String sendInfo(String sendurl, String data)

Android h5 js互動問題,初步瞭解。

接觸Android也算很久了,但是js互動一直不熟也可以說是沒認真接觸過。今天專案修改也完成了,閒來無事忽然想起了這個問題,上網查找了一下,初步瞭解了一下。自己也寫了demo還算ok! 廢話不多說了,咱直接來說一下。(寫這個呢可能幫不到太多人,但是想讓自己印象深刻一些!) 首先,js互動分為

Android中JS進行互動

背景 我們在開發Android應用的時候,很多的時候需要跟網頁打交道,網頁與原生Android之間的互動就涉及到Java與JS之間的相互方法 WebView的使用 我們在Android中如果希望展示一個網頁,基本上都會使用WebView這個元件,它的基本使用也很簡單,假如我們

iOS-UIWebviewweb端互動(javascript指令碼)iOS公開介面供web端呼叫

-(void)webViewDidFinishLoad:(UIWebView *)webView {     //程式會一直呼叫該方法,所以判斷若是第一次載入後就使用我們自己定義的js,此後不在呼叫JS,否則會出現網頁抖動現象     if (!_isFirstLoadWeb) {        

ABP入門系列(16)——通過webapi系統進行互動

1. 引言 上一節我們講解了如何建立微信公眾號模組,這一節我們就繼續跟進,來講一講公眾號模組如何與系統進行互動。 微信公眾號模組作為一個獨立的web模組部署,要想與現有的【任務清單】進行互動,我們要想明白以下幾個問題: 如何進行互動? ABP模板專案中預設建立了webapi專案,其動態webapi技術允

ios 開發 去掉H5 alert 中的網址

去掉彈框中的網址 UIWebView直接載入的H5介面,彈出 alert 往往會出現這樣的情況 這時候我們需要做的,就是自定義alert風格 直接上程式碼 @interface NSObject (JavaScriptAlert) - (vo

IOS JS客戶端互動

1.大部分註冊JSContext以及物件的時候都是在webview的 webViewDidFinishLoad中註冊的,但有些JS介面介面沒有載入完就開始呼叫客戶端方法了導致調不起來。最近專案碰到這種情況,改在shouldStartLoadWithRequest中註冊,還