Android는 URL Scheme을 사용하여 APP를 환기시킵니다.
멀리 떨어져 앱 자체로 시선을 돌렸다.서로 다른 APP 간에도 데이터 상호작용이 필요하다.밤을 들고 간단하게 URL Scheme.
만약에 이런 장면이 있다면 회사가 업무의 발전으로 인해 앱 사용자가 앱에서 실명 인증을 해야 한다. 알리페이 플랫폼에서 깨알 실명 인증 기능을 제공해야 한다.그러면 앱은 알리페이 앱을 환기시켜 실명인증을 하고 실명인증이 끝난 후 알리페이가 실명인증 결과를 되돌려야 한다.이로써 서로 다른 앱 간의 데이터 상호작용을 완성했다.
URL Scheme:
안드로이드의 scheme는 페이지 내 점프 프로토콜로 매우 좋은 실현 메커니즘으로 자신의 scheme 프로토콜을 정의함으로써 앱의 각 페이지를 점프하는 데 매우 편리하다.scheme 프로토콜을 통해 서버는 앱이 그 페이지를 점프하는 것을 맞춤형으로 알려줄 수 있고 알림 표시줄 메시지를 통해 페이지를 맞춤형으로 점프할 수 있으며 H5페이지를 통해 페이지를 점프할 수 있다.
URL Scheme 프로토콜 형식:
1:
http://baidu:8080/news?system=pc&id=45464
2:
alipays://platformapi/startapp?appId=20000067
http Scheme 프로토콜
baidu는 어느 주소역에 작용하는지 대표합니다
8080은 경로의 포트 번호를 나타냅니다.
news는 Scheme에서 지정한 페이지를 나타냅니다.
시스템과 id는 전달할 매개 변수를 대표합니다
URL Scheme 사용 방법:
먼저 Mainifest 파일에 시작할 activity에 필터를 추가합니다.
<activity
android:name="com.example.helloworld.MainActivity">
activity에서 매개변수를 수신하려면 다음과 같이 하십시오.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
String scheme = intent.getScheme();
String dataString = intent.getDataString();
Uri uri = intent.getData();
System.out.println("scheme:" + scheme);
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("system");
String id=uri.getQueryParameter("id");
System.out.println("host:" + host);
System.out.println("dataString:" + dataString);
System.out.println("id:" + id);
System.out.println("path:" + path);
System.out.println("path1:" + path1);
System.out.println("queryString:" + queryString);
}
}
}
호출 방법:
웹 페이지 호출
test
native 호출
if (hasApplication()) {
Intent action = new Intent(Intent.ACTION_VIEW);
StringBuilder builder = new StringBuilder();
builder.append("http://baidu:8080/news?system=pc&id=45464");
action.setData(Uri.parse(builder.toString()));
startActivity(action);
}
/**
*
* @return true
*/
private boolean hasApplication() {
PackageManager manager = mContext.getPackageManager();
Intent action = new Intent(Intent.ACTION_VIEW);
action.setData(Uri.parse("http://"));
List list = manager.queryIntentActivities(action, PackageManager.GET_RESOLVED_FILTER);
return list != null && list.size() > 0;
}
전재 대상:https://www.cnblogs.com/zhang-cb/p/7093769.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.