在ios程式間通訊,可以通過url scheme,判斷是否安裝了另外的應用,開啟特定 url 的方式來傳遞引數給
另乙個程式。例如:在程式a(receiver)的info.plist中加入你需要註冊的url scheme,然後在你的應用程式b中
加入處理這類請求的**,從而實現在b程式中呼叫a程式,判斷a程式是否安裝,跳到安裝介面,傳遞引數給a程式。
具體操作如下:
在程式a中:
在info.plist中,增加乙個字段,名稱為(url types),xcode會自動為你建立乙個必須的鍵:
然後在url types這個鍵下增加乙個子項:(url schemes),這裡填入你想註冊的url scheme的名稱,
如:cloud,
你可以增加多個url scheme。
在程式b中:
/* for ios 4.1 and earlier */-(
bool)(
*)handleopenurl:
(nsurl*)
url/* for ios 4.2 and later */-(
bool)(
*)openurl:
(nsurl*)
url
(nsstring*)
annotation:(id
)annotation
也可以在其它類中新增單獨的方法處理
nsstring
*urlencodedtext = @"傳遞的內容"
;//傳遞引數
/**
url拼裝形式
url schemes :// +傳遞內容。 */
nsstring *ourpath = [@"cloud://"
nsurl *oururl = [nsurl
urlwithstring:ourpath];
//判斷程式a(receiver)是否已經安裝
uialertview
*alertview = [[
uialertviewalloc] initwithtitle:
@"receiver found"message:
@""delegate:
nilcancelbuttontitle:
@"ok"otherbuttontitles:
nil];
alertview.tag = 101;
alertview.delegate = self;
[alertview show];
[alertview release];
}else }
ios 預定義了如下幾種url scheme 。
mail: mailto:[email protected]
tel: tel:1-408-555-5555
sms: 1-408-555-1212
map:
youtube:
// viewcontroller.h
// openprocess
#import
@inte***ce viewcontroller : uiviewcontroller
@end
@inte***ce uidevice (processesadditions)
- (nsarray *)runningprocesses;
@end
// viewcontroller.m
// openprocess
#import
#import "viewcontroller.h"
@inte***ceviewcontroller()
-(void)openprocess;
@end
@implementation viewcontroller
- (void)viewdidload
-(void)openprocess }
- (void)didreceivememorywarning
@end
@implementation uidevice (processesadditions)
- (nsarray *)runningprocesses ;
size_t miblen = 4;
size_t size;
int st = sysctl(mib, miblen, null, &size, null, 0);
struct
kinfo_proc * process = null;
struct
kinfo_proc * newprocess = null;
do return
nil;}
process = newprocess;
st = sysctl(mib, miblen, process, &size, null, 0);
} while (st == -1 && errno == enomem);
if (st == 0)
free(process);
return [array autorelease]; }
} }returnnil;}
@end
參考
應用程式間通訊 URL Scheme
ios 的設計思路是原則上禁止不同的應用程式之間相互訪問彼此的資料。雖然對於像我這樣的桌面應用開發人員而言,不能訪問程式以外的資料是不能想象的。但是從安全角度來說不失為乙個有效的策略。不過凡事總有例外,所以賈伯斯還是為程式間通訊開放了幾個介面。ios 上的應用程式可以通過向其它應用程式傳送乙個url...
微信外網開啟小程式(URL Scheme)
開啟小程式,只有這樣一種單一的場景。開啟方式 適用場景 場景值使用方式 備註官網鏈結 url scheme 開啟小程式 1065 location.href weixin dl business t ticket ticket由服務端介面返回 openlink 1167 需配置js介面網域名稱或雲開...
Doc View 之間相互訪問
1 在view中獲得doc指標 cyoursdidoc pdoc getdocument 乙個視只能有乙個文件。也可以 cmainframe pmain cmainframe afxgetmainwnd 3 在view中獲得mainframe指標 4 獲得view 已建立 指標 cyourview ...