AndroidカスタムURL Scheme
4421 ワード
URIからMobileとWebデータを見ると、Androidの設計者たちはActivityにURIを導入した.すなわち、URL Schemeをカスタマイズすることで1ページを特定し、外部と内部アプリケーションはuriを通じてAndroidの各ページを非常に便利に特定することができ、文章はAndroidビジネスコンポーネント化されたURL Schemeから転載され、総李書コードに感謝している.
1、URL Schemeとは?
Androidのschemeはページ内ジャンププロトコルであり、非常に良い実現メカニズムであり、自分のschemeプロトコルを定義することで、appの各ページをジャンプするのに非常に便利である.schemeプロトコルにより,サーバはAppにそのページをスキップするようカスタマイズすることができ,通知欄メッセージによりスキップページをカスタマイズすることができ,H 5ページによりページをスキップすることができる.
2、URL Schemeアプリケーションシーン
クライアントアプリケーションは、ブラウザまたは他のアプリケーションからアプリケーションを起動するためのURL schemeをオペレーティングシステムに登録することができる.指定したURLフィールドを使用すると、呼び出し後に特定のページ(商品詳細ページ、アクティビティ詳細ページなど)を直接開くことができます.支払いの完了など、特定の動作を実行することもできます.アプリケーション内でhtmlページを介してapp内を表示するページを直接呼び出すこともできます.URL Schemeの使用シーンをまとめると、大きく分けて以下のようになります.
サーバはジャンプパスを発行し、クライアントはサーバのジャンプパスに従って対応するページをジャンプする.
H 5ページアンカーポイントをクリックし、アンカーポイントの具体的なジャンプ経路APP端によって具体的なページをジャンプする.
APP側はサーバ側から送信されたPUSH通知欄のメッセージを受け取り、メッセージのクリックジャンプ経路に従って関連ページをジャンプする.
APPはURLに従って別のAPP指定ページにジャンプする
3、URL Schemeプロトコルフォーマット
まず完全なURL Schemeプロトコルをください.
xl://goods:8888/goodsDetail?goodsId=10011002
上のパスScheme、Host、port、path、queryを全て含むことで、基本的に普段からパスを使うのはこのようなものです.
xlはこのSchemeプロトコル名を表す
goodsはSchemeがどのアドレスドメインに作用するかを表すgoodsDetail代表Scheme指定ページgoodsIdは伝達パラメータを表す
8888は、パスのポート番号を表します.
4、URL Schemeはどのように使いますか?
1.)AndroidManifest.xmlでのラベル追加設定Scheme
2)Schemeジャンプのパラメータを取得する
3)呼び出し方式
Webページ
オリジナルコール
4.)Schemeが有効かどうかをどう判断するか
1、URL Schemeとは?
Androidのschemeはページ内ジャンププロトコルであり、非常に良い実現メカニズムであり、自分のschemeプロトコルを定義することで、appの各ページをジャンプするのに非常に便利である.schemeプロトコルにより,サーバはAppにそのページをスキップするようカスタマイズすることができ,通知欄メッセージによりスキップページをカスタマイズすることができ,H 5ページによりページをスキップすることができる.
2、URL Schemeアプリケーションシーン
クライアントアプリケーションは、ブラウザまたは他のアプリケーションからアプリケーションを起動するためのURL schemeをオペレーティングシステムに登録することができる.指定したURLフィールドを使用すると、呼び出し後に特定のページ(商品詳細ページ、アクティビティ詳細ページなど)を直接開くことができます.支払いの完了など、特定の動作を実行することもできます.アプリケーション内でhtmlページを介してapp内を表示するページを直接呼び出すこともできます.URL Schemeの使用シーンをまとめると、大きく分けて以下のようになります.
サーバはジャンプパスを発行し、クライアントはサーバのジャンプパスに従って対応するページをジャンプする.
H 5ページアンカーポイントをクリックし、アンカーポイントの具体的なジャンプ経路APP端によって具体的なページをジャンプする.
APP側はサーバ側から送信されたPUSH通知欄のメッセージを受け取り、メッセージのクリックジャンプ経路に従って関連ページをジャンプする.
APPはURLに従って別のAPP指定ページにジャンプする
3、URL Schemeプロトコルフォーマット
まず完全なURL Schemeプロトコルをください.
xl://goods:8888/goodsDetail?goodsId=10011002
上のパスScheme、Host、port、path、queryを全て含むことで、基本的に普段からパスを使うのはこのようなものです.
xlはこのSchemeプロトコル名を表す
goodsはSchemeがどのアドレスドメインに作用するかを表すgoodsDetail代表Scheme指定ページgoodsIdは伝達パラメータを表す
8888は、パスのポート番号を表します.
4、URL Schemeはどのように使いますか?
1.)AndroidManifest.xmlでのラベル追加設定Scheme
2)Schemeジャンプのパラメータを取得する
Uri uri = getIntent().getData();
if (uri != null) {
// url
String url = uri.toString();
Log.e(TAG, "url: " + uri);
// scheme
String scheme = uri.getScheme();
Log.e(TAG, "scheme: " + scheme);
// host
String host = uri.getHost();
Log.e(TAG, "host: " + host);
//port
int port = uri.getPort();
Log.e(TAG, "host: " + port);
//
String path = uri.getPath();
Log.e(TAG, "path: " + path);
List pathSegments = uri.getPathSegments();
// Query
String query = uri.getQuery();
Log.e(TAG, "query: " + query);
//
String goodsId = uri.getQueryParameter("goodsId");
Log.e(TAG, "goodsId: " + goodsId);
}
3)呼び出し方式
Webページ
<a href="xl://goods:8888/goodsDetail?goodsId=10011002"> a>
オリジナルコール
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("xl://goods:8888/goodsDetail?goodsId=10011002"));
startActivity(intent);
4.)Schemeが有効かどうかをどう判断するか
PackageManager packageManager = getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("xl://goods:8888/goodsDetail?goodsId=10011002"));
List activities = packageManager.queryIntentActivities(intent, 0);
boolean isValid = !activities.isEmpty();
if (isValid) {
startActivity(intent);
}