日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android 外部内容分享到app内,外部跳转APP

發(fā)布時(shí)間:2024/7/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 外部内容分享到app内,外部跳转APP 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

需求

廣告推廣、華為微服務(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。