当用户点击浏览器中的网址时,我想启动for (int i = 0 ; i < randomNumber ; i++){
id subView = [view viewWithTag:i];
if ([subView isKindOfClass:[UIImageView class]]){
((UIImageView *)subView).image = selectedImage;
}
if ([subView isKindOfClass:[UIButton class]]){
[((UIButton *)subView) setImage:selectedImage forState:UIControlStateNormal];
}
}
。我用这种方式创建了自定义清单:
Activity
当我从备注或任何文本编辑器中单击 <activity
android:name=".views.RestorePwActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize"
android:exported="true">
<intent-filter>
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data
android:host="mysite.com"
android:scheme="https" />
</intent-filter>
</activity>
时,会打开 Activity
,但当我在浏览器中点击URL
时,它会将我重定向到某个网站。
我在堆栈溢出时看到了类似的问题,但这些答案都没有帮助。 我还阅读了现代浏览器限制此类行为的观点。我使用的是Android 5+。是否有可能实现这一目标?
答案 0 :(得分:1)
请参阅Android的原始文档以获取深层链接https://developer.android.com/training/app-links/deep-linking.html
由于你的代码在清单中显得很好但我无法编译它。如果您想要代码帮助共享您的项目。
我希望给定链接会有所帮助!
答案 1 :(得分:1)
深层链接示例代码:
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="splus.in.codestructure">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HomeActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
<data android:scheme="example"
android:host="deeplinksample" />
<!-- note that the leading "/" is required for pathPrefix-->
</intent-filter>
</activity>
</application>
</manifest>
HomeActivity.java
public class HomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sample_two);
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
}
}
您可以通过两种方式执行:
命令行:
F:\AndroidStudioSetup\sdk\platform-tools> adb shell am start -W -a android.intent.action.VIEW -d "example://deeplinksample" splus.in.codestructure
控制台输出:
Starting: Intent { act=android.intent.action.VIEW dat=example://deeplinksample pkg=splus.in.codestructure }
Status: ok
Activity: splus.in.codestructure/.HomeActivity
ThisTime: 90
TotalTime: 10383
WaitTime: 108
Complete
如果您想从浏览器打开,请尝试以下代码:
Deeplinking.html
您可以将此文件保存在服务器上,也可以复制到SD卡上。用浏览器打开,然后点击**深层链接示例。它会打开你的应用程序。
让我知道是否需要更多帮助!