百度地圖/社交分享/應用間的跳轉
百度地圖
導航畫線本質上是在mapView上新增遮蓋物。資料交由蘋果處理(蘋果找高德地圖)
畫線可以分為三大步驟,每一步都必不可少:
1.定位
確定當前位置-->和前面講過的定位相同,建立位置管理器並請求使用者授權即可
2.請求目的地和當前位置間的折線(polyline)
請求折線的核心程式碼:
//初始化方向物件
MKDirections *direction = [[MKDirections alloc] initWithRequest:request];
[direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) {
for (MKRoute *route in response.routes) {
//折線
MKPolyline *polyline = route.polyline;
[self.mapView addOverlay:polyline];
}
}];
由於這裡類比較多,記憶難度大,我建議同學們只記住上面的核心程式碼,反推出來即可。
****方向物件需要一個MKDirectionsRequest,根據source和destination傳入mapItem型別的當前位置和目的地位置
//方向請求
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
//請求的當前位置
request.source = mapItem;
//請求的目的地位置
request.destination = destationItem;
****得到當前位置和目的地位置的mapItem和導航時方法相同.
3.建立渲染物物件
在mapView代理方法mapView: rendererForOverlay: 中根據折線建立渲染物,並設定顏色。
//折線渲染物
MKPolylineRenderer *polylineRenderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
//折線顏色
polylineRenderer.strokeColor = [UIColor redColor];
返回渲染物交由系統處理:
return polylineRenderer;
分享
系統自帶分享使用 "<Social/Social>"框架
系統自帶分享分為三步
1.判斷分享是否可用
[SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo];
服務型別有:微博 騰訊微博 facebook 和 twitter四種型別 其中facebook和twitter在國內由於你懂得原因不能使用,騰訊微博現在發展太差,所以一般都使用微博服務
如果不可用,需要在系統設定中登入對應的微博賬號
2.建立分享控制器
SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
控制器可以預設 圖片 文字 和網址
微博可以定位,但是隻有在手機app上的微博詳情才能看到
3.彈出分享控制器
[self presentViewController:composeVC animated:YES completion:nil];
第三方分享(以友盟為例)
當我們整合第三方SDK時,一定要參考第三方的整合文件。以友盟為例.
1. 建立appKey
2. 下載並安裝SDK
3. 設定AppKey
4. 新增實現程式碼
如果是iOS9系統,還需要適配iOS9的HTTP傳輸安全問題
SSO登入分享
SSO指單點登入,當使用者安裝了對應第三方客戶端且登入時,可以在登入時免去輸入賬號密碼的過程,簡化分享流程
SSO協議無法在模擬器上實現(找不到對應的app)
實現微博SSO協議需要5個步驟
1.按友盟要求匯入第三方sina包
2.配置URL schemes
3.按友盟新增SSO授權開關 -->複製友盟官網程式碼
4.新增系統回撥 -->友盟官網方法過期,可用application:openURL:options: 代替
5.適配iOS9 參照友盟官網"適配iOS9系統" --> 信任白名單
應用間跳轉
應用跳轉是根據協議頭跳轉
A跳轉B,需要B增加URL Types ,A應用根據URL的協議頭跳轉
iOS8之前的跳轉方法:
//適配iOS9 需要配置plist檔案 -->新增應用白名單 -->info.plist新增LSApplicationQueriesSchemes陣列
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"weixin://"]];
}
//iOS9可以使用 不需要配置plist檔案
if (![[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"weixin://"]]) {
NSLog(@"開啟失敗");
}
跳轉到指定介面
假設從A應用跳到B應用的指定介面,跳轉的思路是:1. 設定B應用segue線的ID;2. 在A應用中傳入協議頭和ID;3. 在B應用中取得傳入的URL並擷取4. 根據擷取的欄位跳轉指定介面
/* 下面三個方法是替代關係,都可以接收傳遞的url,建議都實現。 */
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation{
return YES;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options
迴圈跳轉
A跳轉B後再跳回A的迴圈跳轉思路:
1.給A一個"唯一"的URL scheme以供跳轉
eg: weixin.fdafdfe234
2.在A中將scheme和要跳轉B的協議頭處理拼接
//headerStr是協議頭 scheme是A的標識
urlStr = [NSString stringWithFormat:@"%@?%@",headerStr,scheme];
3.在B中處理傳來的url
//lastUrl是擷取出來的scheme
NSString *urlStr = [lastUrl stringByAppendingString:@"://"];
4.處理url得到scheme,並返回
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]]
相關文章
- Page Ability 之間的跳轉概念和應用分享
- iOS應用之間的跳轉解析iOS
- Android應用內外跳 — 跳轉到應用市場Android
- Deeplink跳轉提示應用下架
- SAP UI5 Web Component React應用如何在Component之間跳轉UIWebReact
- SAP UI5 Cross Application Navigation (跨應用間跳轉)的本地模擬實現UIROSAPPNavigation
- 手把手教你玩轉HarmonyOS版地圖應用開發地圖
- 百度地圖、高德地圖收藏夾位置資訊匯出小工具分享地圖
- 單頁面應用微信分享跳坑指南
- ArkWeb頁面跳轉與跨應用導航 - 高階應用Web
- 教你如何在快應用中跳轉到Android的appAndroidAPP
- 百度地圖開發-與地圖的互動功能 06地圖
- 用Echarts請求百度地圖api 小案例Echarts地圖API
- 用HMS Core地圖服務自定義地圖樣式,給你的應用製作專屬個性化地圖地圖
- Android 外部喚起應用跳轉指定頁面Android
- NFC 標籤:自動跳轉到指定應用
- 造“車輪”的百度地圖地圖
- 網站劫持跳轉,分享網站被劫持跳轉的解決辦法網站
- 百度地圖GeoUtils示例地圖
- rewrite實現目錄之間的跳轉
- iOS 應用之間跳轉傳輸資料以及跳回源程式iOS
- GPS座標互轉:WGS-84(GPS)、GCJ-02(Google地圖)、BD-09(百度地圖)GCGo地圖
- 點選連結跳轉到應用指定頁面
- 淺談百度地圖API的坑地圖API
- 百度地圖開發-引入地圖SDK並配置 02地圖
- 如何區分router.push跳轉快應用的來源渠道
- 使用者故事地圖實際應用地圖
- 對接百度地圖API地圖API
- 自定義百度地圖元件地圖元件
- 百度地圖-課程安排地圖
- mapboxgl 糾偏百度地圖地圖
- iOS基於中間層的路由跳轉方案iOS路由
- 地圖資料採集,包括百度地圖採集,高德地圖採集,360地圖採集地圖
- 百度地圖開發-顯示地圖預設介面 03地圖
- 百度地圖開發-實現離線地圖功能 05地圖
- 徐童:視訊人物社交關係圖生成與應用
- 開放世界地圖設計的秘訣:圖示的多維應用地圖
- Aluma Insights:1/6的成年SVOD使用者在應用之間不斷跳轉
- 百度離線地圖瓦片圖製作地圖