iOS-關(guān)于URL schema

URL schema用于其他 APP 或者瀏覽器啟動(dòng)此 APP 的標(biāo)識(shí)

添加

在 URL Types 上添加一個(gè) item

Identifier建議采用反轉(zhuǎn)域名的方法保證該名字的唯一性,比如com.yourCompany.yourApp

URL Schemes理論上隨便填什么都可以,比如iOSDevApp

驗(yàn)證

在瀏覽器中輸入iOSDevApp://,確認(rèn)后就可以跳轉(zhuǎn)到APP

疑問

試驗(yàn)下如果兩個(gè) APP 使用同一個(gè)URL Schemes,后一個(gè)注冊(cè)URL Schemes的APP會(huì)被啟動(dòng),APP安裝后就會(huì)注冊(cè)URL Schemes。

當(dāng)使用第三方的平臺(tái)分享或者登陸的時(shí)候,使用appkey作為URL Schemes的原理是什么,不可能說新浪需要注冊(cè)N個(gè)URL Schemes提供給我們用。

案例

比如自定義的鏈接NSString *customURL = @"iOSDevTips://?token=123abct?istered=1";

- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url

sourceApplication:(NSString*)sourceApplication annotation:(id)annotation

{

// Check the calling application Bundle ID

if([sourceApplication isEqualToString:@"com.xxx.xxxx"])

{

NSLog(@"Calling Application Bundle ID: %@", sourceApplication);

NSLog(@"URL scheme:%@", [url scheme]);

NSLog(@"URL query: %@", [url query]);

returnYES;

}

else

returnNO;

}

Calling Application Bundle ID: com.3Sixty.CallCustomURL

URL scheme:iOSDevTips

URL query: token=123abct?istered=1

比如一些蘑菇街,可以直接從網(wǎng)頁(yè)上跳轉(zhuǎn)到 APP 的相應(yīng)頁(yè)面,應(yīng)該用的就是query來標(biāo)識(shí)特定的頁(yè)面,去請(qǐng)求相應(yīng)的數(shù)據(jù)

應(yīng)用內(nèi)瀏覽器

測(cè)試網(wǎng)頁(yè):

iOS and Js

Click me here:Jump to Baidu

點(diǎn)擊Click me here:的按鈕跳轉(zhuǎn)到 Native 的頁(yè)面,需要實(shí)現(xiàn)以下方法

- (void)webView:(WKWebView *)webViewdecidePolicyForNavigationAction:(WKNavigationAction *)navigationActiondecisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler{

if(webView != self.webView) {

decisionHandler(WKNavigationActionPolicyAllow);

}

UIApplication *app = [UIApplication sharedApplication];

NSURL *url = navigationAction.request.URL;

if(!navigationAction.targetFrame) {

if([appcanOpenURL:url]) {

[appopenURL:url];

decisionHandler(WKNavigationActionPolicyCancel);

}

}

if([url.schemeisEqualToString:@"shopman"]){

if([appcanOpenURL:url]){

[appopenURL:url];

decisionHandler(WKNavigationActionPolicyCancel);

}

}

decisionHandler(WKNavigationActionPolicyAllow);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 目標(biāo) 平常我們做iOS開發(fā),會(huì)經(jīng)常遇到打開其他的APP的功能。本篇文章講的就是打開別人的APP的一些知識(shí)。我們的目...
    橙娃閱讀 6,768評(píng)論 0 5
  • 項(xiàng)目演示 URL Scheme是什么 由于蘋果的app都是在沙盒中,相互是不能訪問數(shù)據(jù)的。但是蘋果還是給出了一個(gè)可...
  • “知識(shí)改變命運(yùn),習(xí)慣成就人生?!睆V闊的知識(shí)海洋,寫滿了我對(duì)過去的回憶,銘刻了我對(duì)未來的遐思,是它讓我成長(zhǎng),是它...
    談笑風(fēng)昇閱讀 445評(píng)論 6 9
  • 1. 作用域 let關(guān)鍵字:引入let的原因正是var的局限性. 相比于var,let有以下幾點(diǎn)優(yōu)勢(shì): 作用域va...
    金桔檸檬加冰閱讀 1,753評(píng)論 0 2
  • 1 天上白云朵朵, 地里花兒綻放。 遠(yuǎn)處綠樹蔥蘢, 近來芳草萋萋。 2 春風(fēng)來往不招呼, 衣袖飄揚(yáng)千里白。 陽(yáng)光沐...
    楓橋下的光閱讀 235評(píng)論 0 6

友情鏈接更多精彩內(nèi)容