android scheme 配置多个,Android Scheme URL 使用方法
URL Scheme 介紹
URL Scheme是一種頁面內跳轉協議,通過定義自己的URL Scheme協議,可以
從一個APP中打開另外一個APP指定的頁面,也可以從H5頁面中跳轉到APP指定的頁面(實際上就是從一個瀏覽器中的一個頁面跳轉到APP指定頁面)。
URL Scheme協議格式
一個完整的完整的URL Scheme協議格式由scheme、host、port、path和query組成,其結構如下所示:
://:/?
實例
schemeService://Host:8080/path?id=true
schemeService:即Scheme 該Scheme協議名稱
Host:即Host,代表Scheme作用于哪個地址域
8080:即port,代表端口號
path:即path,代表打開的頁面
id:代表傳遞的參數
安卓端配置
AndroidManifest
android:name=".ui.tool.LoadToolDetailActivity"
android:screenOrientation="portrait">
android:host="Host"
android:path="/path"
android:port="8080"
android:scheme="schemeService"/>
Activity
Intent intent = getIntent();
String scheme = intent.getScheme();
String dataString = intent.getDataString();
Uri uri = intent.getData();
if (uri != null) {
//完整的url信息
String url = uri.toString();
//scheme部分
String schemes = uri.getScheme();
//host部分
String host = uri.getHost();
//port部分
int port = uri.getPort();
//訪問路徑
String path = uri.getPath();
//編碼路徑
String path1 = uri.getEncodedPath();
//query部分
String queryString = uri.getQuery();
//獲取參數值
String systemInfo = uri.getQueryParameter("tool_id");
}
調用
網頁
打開App傳入指定參數
安卓
先檢查一下是否有效
private boolean schemeValid() {
PackageManager manager = mContext.getPackageManager();
Intent action = new Intent(Intent.ACTION_VIEW);
action.setData(Uri.parse("caishilive://caishi:8080/loadtooldetail?tool_id=100"));
List list = manager.queryIntentActivities(action, PackageManager.GET_RESOLVED_FILTER);
return list != null && list.size() > 0;
}
跳轉
Intent action = new Intent(Intent.ACTION_VIEW);
StringBuilder builder = new StringBuilder();
builder.append("schemeService://Host:8080/path?id=true");
action.setData(Uri.parse(builder.toString()));
startActivity(action);
總結
以上是生活随笔為你收集整理的android scheme 配置多个,Android Scheme URL 使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多目标优化——帕累托最优Pareto
- 下一篇: 银广夏事件--中国股票财务作假事件