Android 原生实现邀请好友加入房间
一.在 AndroidManifest.xml 文件中添加
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="zhanlu.gdygame.li" android:scheme="ice" /> </intent-filter>
host 自由填写 尽可能避免与其他APP发生重复
以下是添加后AndroidManifest的完整代码

一.在 AppActivity 中加入 initIntent() 方法
public void intIntent() { Uri uri = getIntent().getData(); String roomid = null; if (uri != null) { roomid = uri.getQueryParameter("roomid"); new Handler().postDelayed(new Runnable() { public void run() { Log.e("AppActivity", "roomid--------: " + roomid); // 保险起见 延迟一会在去调用JS代码 完成传参 (剩下的就是JS 中 收到房间号后进行加入房间的操作) } }, 2000); } }
分别在 AppActivity 的 onCreate() 和 onNewIntent() 方法中进行调用
注意:---------------------------------------------
在onNewIntent() 方法中调用前 需要先加
setIntent(intent);
以下是 onCreate 和 onNewIntent 的完整代码


iOS原生实现邀请好友加入房间
XCODE工程info.plist加入URLTypes
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLName</key> <string>qmgdy</string> <key>CFBundleURLSchemes</key> <array> <string>gdy2ksdkfj8923kjsd2</string> </array> </dict> </array>
在appdelegate中实现以下方法
`- (BOOL)application:(UIApplication*)applicationhandleOpenURL:(NSURL *)url {
NSArray * urlBABA = [url.absoluteString componentsSeparatedByString:@"://"];
if (urlBABA.count > 0 && [urlBABA.firstObject isEqualToString:@"gdy2ksdkfj8923kjsd2"]){
if (urlBABA.count > 1){
NSArray * par = [urlBABA[1] componentsSeparatedByString:@"="];
if (par.count > 1 && [par.firstObject isEqualToString:@"roomid"]){
// 唤起js 告诉js app 要加入新的房间
[PlatformSystem gotoShareRoom:par[1]];
}
}
return YES;
}
return [WXApi handleOpenURL:url delegate:[PlatformSystem sharedPlatformSystem]];
}
-
(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSArray * urlBABA = [url.absoluteString componentsSeparatedByString:@"://"];if (urlBABA.count > 0 && [urlBABA.firstObject isEqualToString:@“gdy2ksdkfj8923kjsd2”]){
if (urlBABA.count > 1){ NSArray * par = [urlBABA[1] componentsSeparatedByString:@"="]; if (par.count > 1 && [par.firstObject isEqualToString:@"roomid"]){ // 唤起js 告诉js app 要加入新的房间 [PlatformSystem gotoShareRoom:par[1]]; } } return YES;}
// 微信
[WXApi handleOpenURL:url delegate:[PlatformSystem sharedPlatformSystem]];
return YES;
}
// NOTE: 9.0以后使用新API接口
-
(BOOL)application:(UIApplication *)app openURL:(NSURL )url options:(NSDictionary<NSString, id> *)options
{
NSArray * urlBABA = [url.absoluteString componentsSeparatedByString:@"://"];if (urlBABA.count > 0 && [urlBABA.firstObject isEqualToString:@“gdy2ksdkfj8923kjsd2”]){
if (urlBABA.count > 1){ NSArray * par = [urlBABA[1] componentsSeparatedByString:@"="]; if (par.count > 1 && [par.firstObject isEqualToString:@"roomid"]){ // 唤起js 告诉js app 要加入新的房间 [PlatformSystem gotoShareRoom:par[1]]; } } return YES;}
// 微信
[WXApi handleOpenURL:url delegate:[PlatformSystem sharedPlatformSystem]];
return YES;
}`
Safari跳app
链接协议格式:schemes + :// + 参数
如gdygameplatform://roomid=123456&userid=123456
qq群交流
