https://blog.csdn.net/u012246458/article/details/83787854
通过scheme打开app
- url:
- android
1 2 3 4 5 6 7 8 9 10 11 12
| <activity android:name=".TestActivity" <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <!--scheme 允许在浏览器中打开--> <category android:name="android.intent.category.BROWSABLE"/> <!--scheme 相关信息配置--> <data android:scheme="lss" android:host="com.lss"/> </intent-filter> </activity>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class TestActivity extends AppCompatActivity { private static final String TAG = "TestActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = getIntent(); Log.e(TAG, "scheme:" + intent.getScheme()); Uri uri = intent.getData(); Log.e(TAG, "scheme: " + uri.getScheme()); // 获取 scheme 名称 Log.e(TAG, "host: " + uri.getHost()); // 获取 scheme 的host Log.e(TAG, "path: " + uri.getPath()); // 获取 scheme 的路径 Log.e(TAG, "queryString: "+ uri.getQuery()); // 获取 scheme 的参数,?后面的部分 Log.e(TAG, "queryParameter: " + uri.getQueryParameter("param")); // 获取 scheme 中的 param 参数 } }
|
- 浏览器判断是否安装应用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| var downloader, scheme = 'weixin://', // 需要打开的 scheme 地址 download='index'; // 如果打开scheme失效的app下载地址 // 给 id 为 open 的按钮添加点击事件处理函数 document.getElementById('open').onclick = function () { window.location.href = scheme; // 尝试打开 scheme // 设置3秒的定时下载任务,3秒之后下载app downloader = setTimeout(function(){ window.location.href = download; }, 3000); }; document.addEventListener('visibilitychange webkitvisibilitychange', function () { // 如果页面隐藏,推测打开scheme成功,清除下载任务 if (document.hidden || document.webkitHidden) { clearTimeout(downloader); } }); window.addEventListener('pagehide', function() { clearTimeout(downloader); }); }
|