android 外部内容分享到app内,外部跳转APP
需求
廣告推廣、華為微服務(wù);通過(guò)外部網(wǎng)頁(yè)或者卡片跳轉(zhuǎn)到我們的app指定界面。如果app已經(jīng)存在打開(kāi)app,app不存在跳轉(zhuǎn)下載界面。
APP配置
android:name=".LauncherActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait">
android:host="host"
android:scheme="scheme" />
scheme 、host 是必填項(xiàng)
android:path="/path"
android:port="8080"
根據(jù)需求進(jìn)行添加
獲取URL scheme中的值
Uri uri = getIntent().getData();
if (uri != null) {
// 完整的url信息
String url = uri.toString();
Log.i(TAG, "url:" + uri);
// scheme部分
String scheme = uri.getScheme();
Log.i(TAG, "scheme:" + scheme);
// host部分
String host = uri.getHost();
Log.i(TAG, "host:" + host);
// port部分
int port = uri.getPort();
Log.i(TAG, "port:" + port);
// 訪問(wèn)路勁
String path = uri.getPath();
Log.i(TAG, "path:" + path);
List pathSegments = uri.getPathSegments();
// Query部分
String query = uri.getQuery();
Log.i(TAG, "query:" + query);
//獲取指定參數(shù)值
String success = uri.getQueryParameter("success");
Log.i(TAG, "success:" + success);
}
}
通過(guò)web打開(kāi),核心參數(shù)scheme 和 host
1、創(chuàng)建一個(gè)html,把這個(gè)粘貼扔進(jìn)去。如果安裝了app就可以打開(kāi)
打開(kāi)app
2、這個(gè)可以配置下載鏈接,如果APP未安裝會(huì)跳轉(zhuǎn)下載鏈接地址
(根據(jù)需要自己修改,網(wǎng)上找的例子)
Start or Download
(function(){
var ua = navigator.userAgent.toLowerCase();
var t;
var config = {
/*scheme:必須*/
scheme_IOS: 'scheme://host',
scheme_Adr: 'scheme://host',
download_url: 'http://a.app.qq.com/o/simple.jsp?pkgname=com.test',
timeout: 600
};
function openclient() {
var startTime = Date.now();
var ifr = document.createElement('iframe');
ifr.src = ua.indexOf('os') > 0 ? config.scheme_IOS : config.scheme_Adr;
ifr.style.display = 'none';
document.body.appendChild(ifr);
var t = setTimeout(function() {
var endTime = Date.now();
if (!startTime || endTime - startTime < config.timeout + 200) {
window.location = config.download_url;
} else {
}
}, config.timeout);
window.onblur = function() {
clearTimeout(t);
}
}
window.addEventListener("DOMContentLoaded", function(){
document.getElementById("call-app").addEventListener('click',
openclient, false);
}, false);
})()
通過(guò)另外一個(gè)app打開(kāi)
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("scheme://host"));
startActivity(intent);
可以try catch一下,出現(xiàn)Exception說(shuō)明手機(jī)沒(méi)有安裝想打開(kāi)的APP,進(jìn)行其他處理或者提示。
華為微服務(wù)
用到的是deeplink鏈接,使用原理也是scheme
遇坑
scheme | host 大小寫(xiě)問(wèn)題(親測(cè)實(shí)坑)
scheme host 在瀏覽器里是不分大小寫(xiě)的,會(huì)統(tǒng)一轉(zhuǎn)為小寫(xiě)。
所以不要再scheme、host里面寫(xiě)大寫(xiě)!!!
所以不要再scheme、host里面寫(xiě)大寫(xiě)!!!
所以不要再scheme、host里面寫(xiě)大寫(xiě)!!!
總結(jié)
以上是生活随笔為你收集整理的android 外部内容分享到app内,外部跳转APP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: matlab中右三角形方向,《有限元基础
- 下一篇: c语言降序多项式加法,数据结构算法(多项