日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对Url Schemes的简单了解

發(fā)布時間:2025/3/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对Url Schemes的简单了解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Url Schemes應(yīng)用之間跳轉(zhuǎn)

url schemes在app中使用范圍很廣,比如:支付,分享,app之間互相跳轉(zhuǎn),app打開系統(tǒng)設(shè)置,撥打電話,發(fā)送短信等

  • 使用這么頻繁的話,那么url schemes究竟該怎么用?
- (void)jumpAction{NSURL *url = [NSURL URLWithString:@"wisher://QTWeb"];if ([[UIApplication sharedApplication] canOpenURL:url]){[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {if (success) {NSLog(@"跳轉(zhuǎn)成功");}else{NSLog(@"跳轉(zhuǎn)失敗");}}];}else{NSLog(@"不能打開app");} } 復(fù)制代碼

最主要的就是openURL: options: completionHandler:這個方法

在iOS10之前調(diào)用的是openURL:這個方法,如果app兼容iOS10以下的話需要進(jìn)行系統(tǒng)版本判斷

  • 如何配置app之間跳轉(zhuǎn)url schemes?

第一個url types是我們自身app的identifier和url schemes

第二個是我們需要跳轉(zhuǎn)到的app的配置,如果不設(shè)置將跳轉(zhuǎn)不了鏈接

通過這張圖片我們有些問題:

  • identifier是什么?

The identifier you supply with your scheme distinguishes your app from others that might declare support for the same scheme. To ensure uniqueness, specify a reverse DNS string that incorporates your company’s domain name and app name.

您的方案提供的標(biāo)識符將您的應(yīng)用程序與其他可能支持同一方案的應(yīng)用程序區(qū)分開來。為了確保唯一性,指定一個包含您公司域名和應(yīng)用程序名稱的反向DNS字符串。

  • url schemes是什么?

url schemes是我們app需要跳轉(zhuǎn)到目的app,目的app給的回調(diào)路徑,比如跳轉(zhuǎn)其它頁面,拷貝app字符串打開詞典等檢測app能否進(jìn)行目的app對應(yīng)規(guī)則的回調(diào)(類似目的app打開當(dāng)前app這樣的過程)

  • 支付寶沒有我們的url schemes為什么也能返回我們的app?

在我們配置支付寶的url schemes的時候identifier的時候會把identifier寫成alipay,url schemes寫成ap+appid, 支付寶可以通過這個appid返回到我們的app

  • role是什么?

URL schemes offer a potential attack vector into your app, so validate all URL parameters and discard any malformed URLs. It is also recommended that you limit the available actions to those that do not risk the user’s data. For example, do not allow other apps to delete content or access sensitive information about the user. Thoroughly test your URL handling code, and make sure your test cases include improperly formatted URLs.

也就是說通過設(shè)置role可以賦予其它app對你app進(jìn)行操作的權(quán)限. 如果微信的app把role設(shè)置為None我們就不能對微信進(jìn)行分享功能,viewer表示只可對app進(jìn)行查看不能操作app, editor為可讀寫操作,設(shè)置這個之后三方軟件就可以調(diào)起微信分享功能.

跳轉(zhuǎn)鏈接的則是需要傳遞的url,如果調(diào)用系統(tǒng)設(shè)置的話比較簡單,不需要進(jìn)行其它配置

  • 常用跳轉(zhuǎn)鏈接

tips:跳轉(zhuǎn)鏈接不生效可能因為app沒有當(dāng)前權(quán)限,比如說app中沒有用到定位服務(wù),在打開定位url的時候不會跳轉(zhuǎn)到定位的偏好設(shè)置頁面

要跳轉(zhuǎn)的設(shè)置頁面URL
WIFIApp-Prefs:root=WIFI
BluetoothApp-Prefs:root=Bluetooth
蜂窩移動網(wǎng)絡(luò)App-Prefs:root=MOBILE_DATA_SETTINGS_ID
個人熱點App-Prefs:root=INTERNET_TETHERING
定位服務(wù)App-Prefs:root=Privacy&path=LOCATION
鍵盤App-Prefs:root=General&path=Keyboard
語言和地區(qū)App-Prefs:root=General&path=INTERNATIONAL
隱私App-Prefs:root=Privacy
照相與相機(jī)App-Prefs:root=Photos
電池電量App-Prefs:root=BATTERY_USAGE
存儲空間Prefs:root=General&path=STORAGE_ICLOUD_USAGE/DEVICE_STORAGE
打10086tel://10086
App Storeitms-apps://
地圖maps://
信息sms://
郵箱mailto://
常用app跳轉(zhuǎn)url schemes可能不對(原因:文章最后有解釋)
QQmqq://
微信weixin://
淘寶taobao://
支付寶alipay://
新浪微博sinaweibo://
知乎zhihu://

結(jié)尾:如果你的應(yīng)用使用了如SSO授權(quán)登錄或跳轉(zhuǎn)到第三方分享功能,在iOS9/10下就需要增加一個可跳轉(zhuǎn)的白名單,即LSApplicationQueriesSchemes,否則將在SDK判斷是否跳轉(zhuǎn)時用到的canOpenURL時返回NO,進(jìn)而只進(jìn)行webview授權(quán)或授權(quán)/分享失敗。在項目中的info.plist中加入應(yīng)用白名單,右鍵info.plist選擇source code打開(plist具體設(shè)置在Build Setting -> Packaging -> Info.plist File可獲取plist路徑)請根據(jù)選擇的平臺進(jìn)行設(shè)置

如果那里不對希望能給予指正,多謝大佬不吝賜教

總結(jié)

以上是生活随笔為你收集整理的对Url Schemes的简单了解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。