iOS的URL Scheme的实现比较简单
打开project 点击工程名 -> info -> URL type 点击加号 如图 图片来自于(https://www.jianshu.com/p/f367b4a5e871)
图中的URL Scheme是必填的其他的随意
在网页调用App时 用scheme中的值加“://” 例:“com.xhnp://”这样就可以直接调用App,在“://”后面可以传参数也可以不传
App调用时 写一个button的点击事件,里面写
let urlString = "com.xhnp://"
leturl = URL(string: urlString)
UIApplication.shared.open(url!)
就可以调用。
已上就是iOS的Scheme实现。
Android的实现,在AndroidManifest.xml :
<activity
android:name="xxxxxActivity"
...>
<intent-filter>
<!-- 上面三个是必须的 -->
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<!-- scheme 这个是必须的,其他host等不是必须的 -->
<data android:scheme="com.xhnp"/>
</intent-filter>
</activity>
Android的scheme 不能有大写字母
网页跳转的时候:有时会因为浏览器的原因不能进行跳转(我出现的问题是网页跳转会闪以下然后返回网页),解决方案找个好的浏览器。
App跳转的时候:同样找个button写点击事件
Uri uri = Uri.parse(urlString);
Intent intent =new Intent(Intent.ACTION_VIEW,uri);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
其中
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
我看的其他人写的不要这三行也可以进行跳转,我的需要加这三行才能进行跳转。
还有一个小问题就是跳转后点击返回键会返回桌面有的手机会返回跳转前的App
以上就是Android的Scheme实现。
网友评论