Android開啟其他App
背景:通過其他專案、網頁連結開啟自己的app
1、通過其他專案開啟自己的app
其實就是通過隱式Intent開啟Activity(為方便描述簡稱其他專案為:A,自己的app為:B)
首先B專案中activity設定intent-filter
<activity android:name=".ThridActivity"> <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:scheme="market" android:host="com.trywang.jartest" android:path="/abc" /> </intent-filter>
</activity>
到此為止B專案設定完成,只要在A中寫上開啟B的程式碼就可以了,程式碼如下:
Intent intent = new Intent(Intent.ACTION_VIEW上面“market://com.trywang.jartest/abc”就是B專案中配置的data標籤至於後面帶的“?param=1234"則是帶的引數,多個引數使用“?param1=12¶m2=34¶m3=56”即可,引數可以在ThridActivity中的onCreate()或者onStart()方法獲取,Uri.parse("market://com.trywang.jartest/abc?param=1234")); intent.addCategory(Intent.CATEGORY_DEFAULT); startActivity(intent);
不過在開啟的程式碼中一般為了驗證你要開啟的Intent存在的話需要檢查一下,否則你開啟一個不存在的Intent則造成自己的程式崩潰。程式碼如下:
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("market://com.trywang.jartest/abc?abc=1234")); intent.addCategory(Intent.CATEGORY_DEFAULT);PackageManager packageManager = getPackageManager(); List activities = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); boolean isIntentSafe = activities.size() > 0; if (isIntentSafe) { startActivity(intent); }
B專案中ThridActivity的onCreate()方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_thrid); TextView tv = (TextView) findViewById(R.id.tv); Intent intent = getIntent(); Uri uri = intent.getData(); if (uri != null) { String param = uri.getQueryParameter("param");//引數獲取 } }
這樣就可以。其實這些在官網上都有,其實我主要想mark一下在WebView中通過連線開啟的方式。官網連結
2、通過在A中通過WebView開啟B的ThridActivity
B中配置以上不變,只是在A中開啟的程式碼少許更改。
webview.html關鍵程式碼:
<a href="market://com.trywang.jartest/abc?abc=1234">點選連結</a>webview設定
mWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface(new JsInterface(),"Android"); mWebView.setWebChromeClient(new WebChromeClient(){ }); //mWebView.setWebViewClient()
mWebView.loadUrl("file:///android_asset/webview.html");
2.1 不設定webview.setWebViewClient()則開啟系統的瀏覽器,此時點選連結一樣開啟B的ThridActivity
2.2 設定webview.setWebViewClient()則只能通過他的重寫方法shouldOverrideUrlLoading()方法進行跳轉,如果不重寫此方法進行跳轉則無法跳轉!
mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.d(TAG, "shouldOverrideUrlLoading:1111 " + url); Intent intent = null; try { intent = Intent.parseUri(url,Intent.URI_INTENT_SCHEME); } catch (URISyntaxException e) { e.printStackTrace(); return false; } startActivity(intent); return true; } });主要看intent = Intent.parseUri(url,Intent.URI_INTENT_SCHEME)程式碼,將url路徑轉換為intent。此處只是簡單的進行跳轉處理,專案中根據自身情況進行邏輯重寫。
同樣在瀏覽器輸入“market://com.trywang.jartest/abc”也能開啟,不過對瀏覽器有要求:好像只能系統瀏覽器或者google chrome的某些版本以上的才能開啟,其他的瀏覽器打不開,如有好方法歡迎備註!
參考資料:
相關推薦
Android開啟其他App
背景:通過其他專案、網頁連結開啟自己的app 1、通過其他專案開啟自己的app 其實就是通過隱式Intent開啟Activity(為方便描述簡稱其他專案為:A,自己的app為:B) 首先B專案中activity設定intent-filter <activity an
關於Android應用內安裝app然後開啟其他app的一些記錄(相容至Android O)
前段時間個人專案裡需要加入一個預覽word文件的功能,大致流程就是把這個word下載下來,然後用Tencent的X5核心開啟。很簡單對吧,可是讓人頭疼的是將這個功能整合至專案後,一直提示預覽失敗。然而我自己單獨寫的集成了X5核心的demo確是完美開啟,很無語。
react native Linking 打電話 發簡訊 開啟其他App等
使用Linking開啟webURL 郵箱 聯絡人等,其實Linking相當於android的Intent: 使用方式為: Linking.openURL(string) //先匯入Linking import { Linking } from 're
註冊URL Scheme步驟以及開啟其他App
一 註冊 URL Scheme 1.設定URL Scheme 在safari位址列中輸入:URL Schemes://identifier (例如:iOSEnterURL://com.Demo
Android 開啟第三方APP
locks oid keyguard app als launcher pack tex lob int mfingerId=mUpdateMonitor.fingerId; Log.d("from keyguard","id is "+mfingerId);
如何跳轉到其他APP(android)
有很多小夥伴會遇上這樣的需求,從自己的app頁面跳轉到其他APP介面,一般情況下都是在自己的主包中跳轉到公司其他APP,或者是合作方的APP,如果手機中沒有這款APP會下載這款APP 。 今天,博主就教你們如何跳轉到其他app。不多說,直接上程式碼。 public class TiaoZhuan exten
android開啟另外的app兩種方式,內建到自己本身的app,重新開啟app,
android開啟另外的app兩種方式,內建到自己本身的app空間,重新開啟app空間, 目錄 1、內建到自己本身的app空間, 被開啟的app的activity的主配置檔案的程式碼編寫、 <activity android:n
Android中開啟其他應用程式的元件
componentName=new ComponentName("com.liu.testdemo", "com.liu.testdemo.Receiver.TextBroadcastReceiver");
Android H5和App互動以及開啟相簿上傳圖片並顯示
一、H5連結開啟App 點選瀏覽器中的URL,如何啟動App呢? 1、HTML連結處理 首先做成HTML的內容,url格式如下: <a href="[scheme]://[host]/[path]?[query]">啟動應用程式</a> 說明:
Android 使用 Scheme 啟動淘寶,天貓等其他APP
最近在開發一個購物的APP,在應用內直接跳轉到淘寶,天貓,京東等其它購物APP,一番查詢研究後找到了解決方法。 直接上結論程式碼(這也是很多人喜歡看的): //需要傳入的 scheme 型別的商品地址 String path ="taobao://item.
Android 6.0 點選跳轉到其他APP,然後立即返回的Bug處理
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); ComponentName cn = am.getRunningTasks(1).get(0
Android 開啟另一個app的兩種方式
//開啟外部app,新視窗開啟 private void doStartApplicationWithPackageName(String packagename) { // 通過包名獲取此APP詳細資訊,包括Activities、services、ver
Android 如何保證App切換到後臺,或頁面跳轉後,重新開啟APP、或返回之前頁面時,維持其狀態不變
專案中遇到的一些小問題,記錄、分享一下。 Android 如何保證App切換到後臺,或頁面跳轉後,重新開啟APP、或返回之前頁面時,維持其頁面狀態不變? 1、問:當APP啟動後,開啟某一介面,然後點選手機HOME鍵,使應用程式退到後臺;當再次開啟App時,如何保證
Android中通過其他APP啟動Activity的四種方式
提示:在啟動一個Activity前進行必要的存在檢測很有必要,以免程式意外崩潰。 第一種:通過applicationId與package+activityPath applicationId告訴系統活動在那個App內,進入App內就需要類路徑找具體的Activity。
android 淘寶天貓支付寶瀏覽器開啟本地app傳遞引數開啟應用內頁
近期由於專案需要,通過瀏覽器開啟本地app應用。經過多方的查詢反覆的嘗試和閱讀。總結出來。有價值的知識的分享出來。雖說不是很難。 第一步: 寫好相關的js方便調取如下: <!DOCTYPE html> <html lang="en"&
IOS監測其他APP是否開啟的思路
原地址:http://www.hudongdong.com/talk/369.html 之所以寫這篇文章是因為碰到一個問題,因為最近要做一個app去鼓勵使用者下載其他的app,所以需要我們去監測使用者是否下載了指定的軟體並且執行試玩了,重點就是我們的軟體在使用者點選去a
android在只擁有第三方apk的情況下在自己app中開啟第三方app
前提是第三方apk的AndroidManifest的某個activity中的export = "true" /** * * 開啟另一個app * @param packageName * @param classNam
Django打造在線教育平臺_day_3: 搭建後臺管理系統Xadmin之其他app的數據表註冊
user cli mode lis mob use lds desc gist courses/adminx.py import xadmin from .models import Course, Lesson, Video, CourseResource class
在Android中使App高速、簡單地支持新浪微博、微信、QQ、facebook等十幾個主流社交平臺的分享功能
分析 ont renren androidm mod 執行 xen 12px 操作 前言 在如今的APP或者遊戲中,分享功能差點兒已經成為標配。分享功能不但能夠滿足用戶的需求。也能夠為產品帶來很多其它的用戶,甚至能夠對用戶的行為、活躍度、年齡段等情況進行數據統計,使得軟
[ios] 如何調用其他app h5界面調用打開app
nss build 一個 baidu shared detail view query 信息 參考資料:app喚醒app h5喚醒app 有趣的URL Scheme 被喚起端需要做的工作(demoApp): 1.設置URL Scheme 只是一個ap