當前位置:首頁 » 安卓系統 » android調用app

android調用app

發布時間: 2022-12-28 02:23:35

⑴ Android點擊簡訊鏈接打開App之App Link 技術實現(親證篇)

學習資料:

Android 點擊Url(簡訊鏈接)打開App 的調研與實現

Google App Link 技術實現(親證篇)

AppLinks使用詳解

實現方式分:Deep linking 與 Android App Links

Deep linking方式實現:具體可以參考 Android 點擊Url(簡訊鏈接)打開App 的調研與實現

Android App Links方式實現

第一步 驗證一個伺服器地址(例如https://asuss.ryit.co),成功驗證通過後,當用戶在簡訊中點擊於類似https://asuss.ryit.co/login的web鏈接,即可打開app本地相關頁面,我們在AndroidMenifest的啟動頁進行配置

第二步 assetlinks.json文件製作 Android Studio中Tools>App Link Assistants

這個文件只能放在https的鏈接中,不管你之前在action中聲明的是http或者https

第三步 驗證

1)打開瀏覽器訪問https://asuss.ryit.co/.well-known/assetlinks.json,正常應該看到該文件內容輸出。

2)訪問google api,查看app是否通過App Links驗證(需翻牆這步一定要做,有人反饋如果不做這步還是deeplink)

https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://asuss.ryit.co(替換你的伺服器名)&relation=delegate_permission/common.handle_all_urls

3)在簡訊中編輯https://asuss.ryit.co,之後點擊url直接跳轉到應用中省去了跳轉到瀏覽器的選擇跳轉過程

注意:圖中url為個人虛擬url了,替換即可

散花,愛你們,我的安卓老兄弟們,安卓老姐們,我踩完坑了。

⑵ 怎麼用網頁的超級鏈接調用安卓手機的app

一、通過html頁面打開Android本地的app

1、首先在編寫一個簡單的html頁面

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<a href="m://my.com/">打開app</a><br/>

</body>

</html>

2、在Android本地app的配置

在AndroidManifest的清單文件里的intent-filte中加入如下元素:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:host="my.com"
android:scheme="m" />
</intent-filter>

示例截圖如下:

然後使用「手機瀏覽器」或者「webview」的方式打開這個本地的html網頁,點擊「打開APP」即可成功開啟本地的指定的app

二、如何通過這個方法獲取網頁帶過來的數據

只能打開就沒什麼意思了,最重要的是,我們要傳遞數據,那麼怎麼去傳遞數據呢?

我們可以使用上述的方法,把一些數據傳給本地app,那麼首先我們更改一下網頁,代碼修改後:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="m://my.com/?arg0=0&arg1=1">打開app</a><br/>
</body>
</html>

(1).假如你是通過瀏覽器打開這個網頁的,那麼獲取數據的方式為:

Uri uri = getIntent().getData(); String test1= uri.getQueryParameter("arg0"); String test2= uri.getQueryParameter("arg1");

(2)如果使用webview訪問該網頁,獲取數據的操作為:
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Uri uri=Uri.parse(url);
if(uri.getScheme().equals("m")&&uri.getHost().equals("my.com")){
String arg0=uri.getQueryParameter("arg0");
String arg1=uri.getQueryParameter("arg1");

}else{
view.loadUrl(url);
}
return true;
}
});

⑶ Android APP調起另外一個APP並傳值

第一種:

第二種:

setClassName內部也是調用的setComponent。

調用方:

被調用方在AndroidManifest的Activity中添加自定義action:

被調用方數據接收:

第一種:

調用方通過點擊H5網頁上按鈕

這種方法存在著弊端就是沒辦法判斷手機上是否安裝APP時,更適合打開自己APP中Activity。一般建議js與java進行交互調用原生的方法: WebViewJavascriptBridge 使用簡單方便,並且避免了一些js腳本注入漏洞。
第二種:隱式調用

被調用方在AndroidManifest的Activity中添加自定義action:

被調用Activity中數據接收:

注意: 這兩種方式只適合針對某個頁面,都只是在自己應用中跳轉第三方應用,並不是真正的喚醒,比如應用A已經在後台存在了,應用B調用以上兩種方式後,只是在應用B中重新打開了一個應用A,此時的應用A是相當與存在兩個,一個是在後台單獨存在,一個是依存應用B存在,是添加到應用B的棧中的,當點擊A頁面裡面的跳轉按鈕時才真正調起跳轉到A應用。

⑷ Android 跨應用間調用: URL Scheme

Android中的自定義的 URL Scheme 是一種頁面內跳轉協議,也可以被稱為 URLRouter ,就是通過類似打開網頁的方式去通過路由打開一個Activity,而非直接通過顯式Intent方式去進行跳轉。這樣隱式intent的方法跳轉好處如下:

上文已經說過, URL Scheme 是就通過類似打開網頁的方式去通過路由打開一個Activity,其協議格式和我們打開網頁輸入的網址類似。

一個完整的完整的URL Scheme協議格式由scheme、host、port、path和query組成,其結構如下所示:

其中scheme既可以是Android中常見的協議,也可以是我們自定義的協議。Android中常見的協議包括content協議、http協議、file協議等,自定義協議可以使用自定義的字元串,當我們啟動第三方的應用時候,多是使用自定義協議。

如下是一個自定義協議的URI:

通過上面的路徑 Scheme、Host、port、path、query全部包含:

URL Scheme 的使用方法簡要言之就是先在manifest中配置能接受Scheme方式啟動的activity;當需要調用時,將Scheme協議的URi以Data的形式加入到Intent中,隱式調用該activity。

1). 在AndroidManifest.xml中對<activity >標簽增加<intent-filter>設置Scheme

上面的設置中可以看到,MainActivity包含多個<intent-filter>設置,第一個是正常的啟動,也就是在應用列表中啟動;第二個是通過 URL Scheme 方式啟動,其本身也是隱式Intent調用的一種,不同在於添加了<data>屬性,定義了其接受 URL Scheme 協議格式為 urlschemel://auth_activity

這里需要說明下, URL Scheme 協議格式中,組成URI的這些屬性在<data >標簽中都是可選的 ,但存在如下的依賴關系:

當我們將intent對象中的Uri參數與intent-filter中的<data>標簽指定的URI格式進行對比時,我們只對比intent-filter的<data>標簽指定的部分,例如:

需要注意的是,intent-filter的<data>標簽在指定path的值時,可以在裡面使用通配符*,起到部分匹配的效果。

2). 使用URL啟動Activity

當然可以在網頁中調用

或者是在JS中調用

3.)如何判斷URL Scheme是否有效

有時候需要把一些輔助性的、較為獨立的APP在Home Launcher中隱藏起來,只允許一些特定的APP調用。這個時候,我們可以利用 URL Scheme 協議來做到這一點,設置AndroidManifest.xml中對<activity >標簽如下

因為Home Launcher列出的應用圖標要求必須有Activity同時滿足

上面的配置中有多餘的category和data限制存在,所以並不匹配,不會在Home Launcher出現,但是可以使用 URL Scheme 來啟動。

這樣就可以將一組APP設置一個統一的入口,然後根據實際需要在調用不同子APP,即所謂的 APP業務組件化 , URL Scheme 在其中有著重要的作用,更進一步討論會在以後的文章中呈現,敬請期待。

參考文獻:
http://blog.csdn.net/iispring/article/details/48481793
http://blog.csdn.net/hb707934728/article/details/53196419
http://www.cnblogs.com/whoislcj/p/5825333.html

⑸ 安卓瀏覽器開發怎樣被其他APP調用

如果想要對方應用點擊鏈接後直接調用你的瀏覽器打開,那是無法實現的(除非只裝了你這一個瀏覽器)。
首先你應該了解,android中打開activity或者service是通過發送intent去執行的,而intent又有隱性和顯性之分。
只有對方應用創建的是顯性intent並指定了你開發的瀏覽器,那麼才會直接以你的瀏覽器打開網頁,
但這個intent是由發送方決定的,你作為瀏覽器的開發者是無可奈何的。

你能做的只是開發一個broadcastReceiver(廣播接收器),告訴系統你是一個瀏覽器,
那麼當用戶用隱式intent去打開瀏覽器時,你就會作為一個備選瀏覽器供用戶選擇。

⑹ Android怎麼調用系統自帶郵箱app

在Android中,調用Email有三種類型的Intent: Intent.ACTION_SENDTO 無附件的發送 Intent.ACTION_SEND 帶附件的發送 Intent.ACTION_SEND_MULTIPLE 帶有多附件的發送 當然,所謂的調用Email,只是說Email可以接收Intent並做這些事情,可能也有其他的應用程序實現了相關功能,所以在執行的時候,會出現選擇框進行選擇。 1.使用SENTTO發送

1
2
3
4
5
6
7
8
9
10

Intent data=new Intent(Intent.ACTION_SENDTO);
data.setData(Uri.parse("mailto:[email protected]"));
data.putExtra(Intent.EXTRA_SUBJECT, "這是標題");
data.putExtra(Intent.EXTRA_TEXT, "這是內容");
startActivity(data);
Intent data=new Intent(Intent.ACTION_SENDTO);
data.setData(Uri.parse("mailto:[email protected]"));
data.putExtra(Intent.EXTRA_SUBJECT, "這是標題");
data.putExtra(Intent.EXTRA_TEXT, "這是內容");
startActivity(data);

⑺ Android內嵌網頁,調用APP顯示typeerror

因為你在該APP中重寫了相關方法。
單從前端技術上是解決不了這個問題的,這個問題之所以不太好排查,一方面跟手機端的圖片上傳功能我不太常用到有很大關系。
我們見到一些其它的APP容器能支持該功能,所以思維在習慣上已經形成定勢,誤以為這是WebView默認就支持的。建議下次進行類似功能的需求評審,別忘了先了解下相應的APP容器是否支持該功能,如果沒有,則需要找到相應的客戶端開發同學評估一下工時,以免造成影響項目進度的風險。

⑻ android 怎麼調用其它的app

在同一個應用中,大家都熟悉用Intent在Activity之間跳轉。那麼Intent能否再兩個應用之間跳轉呢。答案是肯定的。在Android2.0 後的做如下:
app1 org.freedom.app1.HelloActivityapp2 org.freedom.app2.TestActivity如何在app2的TestActivity調用app1的HelloActivity呢?
首先在app1的 AndroidManifest.xml中 HelloActivity聲明中加入如下內容:<intent-filter>
<action android:name=""/>
</intent-filter>
然後就可以調用了TestActivity 中調用代碼如下:Intent Intent = new Intent();intent.setClassName("org.freedom.app1", "org.freedom.app1.HelloActivity");startActivity(intent);

⑼ Android 調用手機瀏覽器的正確方式

intent-filter詳解

前提: 本人通過手機默認瀏覽器及html查看器都可以成功調起本地app

調起App時,獲取到html中的內容如下,該內容被封裝到Intent中,並通過 intent.getData()獲取(使用Uri表示),我們通過uri.getQueryParameter()獲取具體欄位的值。

1.當App已啟動時,也可以調起app,只是獲取不到Intent中的數據。我的大概理解是Android中Activity啟動時通過Intent在傳遞數據,如果我們的Activity已經啟動,沒有再次獲取Intent對象,android:launchMode="singleInstance";這個需要其它同學解答下。
2.為什麼我把Activity啟動模式設置為android:launchMode="singleInstance"?因為如果我們使用默認的standard模式,會發現被調起的app的Activity運行在瀏覽器的任務棧中了。這是Activity啟動模式對調起App的影響。
3.有什麼不足之處,希望大家指正。謝謝

熱點內容
隨機啟動腳本 發布:2025-07-05 16:10:30 瀏覽:535
微博資料庫設計 發布:2025-07-05 15:30:55 瀏覽:32
linux485 發布:2025-07-05 14:38:28 瀏覽:310
php用的軟體 發布:2025-07-05 14:06:22 瀏覽:760
沒有許可權訪問計算機 發布:2025-07-05 13:29:11 瀏覽:437
javaweb開發教程視頻教程 發布:2025-07-05 13:24:41 瀏覽:735
康師傅控流腳本破解 發布:2025-07-05 13:17:27 瀏覽:249
java的開發流程 發布:2025-07-05 12:45:11 瀏覽:696
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:288
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:838