微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当从浏览器单击链接时,如何打开 React Native 应用程序的特定屏幕?

如何解决当从浏览器单击链接时,如何打开 React Native 应用程序的特定屏幕?

我使用 Expo 创建了一个 React Native 应用程序。当用户点击如下链接时,如何打开应用的特定屏幕:

public class posScreen extends AppCompatActivity {
ViewPager viewPager;
ViewPagerAdapter viewPagerAdapter;
private TextView tabMeals,tabSides,tabCheckout;

public posScreen() {
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pos_screen);
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    //Tab Resources
    tabMeals = findViewById(R.id.meals_tab);
    tabSides = findViewById(R.id.sides_tab);
    tabCheckout = findViewById(R.id.checkout_tab);
    viewPager = findViewById(R.id.FragContainer);

    tabMeals.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            viewPager.setCurrentItem(0);
        }
    });
    tabSides.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            viewPager.setCurrentItem(1);
        }
    });
    tabCheckout.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            viewPager.setCurrentItem(2);
        }
    });

    viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
    viewPager.setAdapter(viewPagerAdapter);

    viewPager.addOnPagechangelistener(new ViewPager.SimpleOnPagechangelistener() {
        @Override
        public void onPageScrolled(int position,float positionOffset,int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            onChangeTab(position);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

}

private void onChangeTab(int position) {
    if(position == 0) {
        tabMeals.setTextSize(30);
        tabSides.setTextSize(20);
        tabCheckout.setTextSize(20);
    } else if(position == 1) {
        tabMeals.setTextSize(20);
        tabSides.setTextSize(30);
        tabCheckout.setTextSize(20);
    } else if(position == 2) {
        tabMeals.setTextSize(20);
        tabSides.setTextSize(20);
        tabCheckout.setTextSize(30);
    }
}

根据我的研究,我安装了 <?xml version="1.0" encoding="utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" tools:context=".posScreen"> <androidx.viewpager.widget.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/FragContainer" android:layout_marginTop="50dp"/> <com.google.android.material.tabs.TabLayout android:id="@+id/tabLayout" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <com.google.android.material.tabs.TabItem android:id="@+id/meals_tab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Meals" /> <com.google.android.material.tabs.TabItem android:id="@+id/sides_tab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sides and Drinks" /> <com.google.android.material.tabs.TabItem android:id="@+id/checkout_tab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Checkout" /> </com.google.android.material.tabs.TabLayout> </androidx.appcompat.widget.LinearLayoutCompat> ,并在 https://staging.wapal.com/reset/password?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImJhc2lycnBheWVuZGFAZ21hSI6InBhc3N3b3JkUmVzZXQiLC12J1c2VyX2lkIjoxOTYsImlhdCI6MTYyNzQ4ODM1OSwiZXhwIjoxNjI3ND3123kxOTU5fQ.LZZvXNnlsLMEB4YWwojRvbiz8PPwRMq1QQPyJZrakls 中进行了如下配置:

expo-linking

可能有些部分我没有从文档中理解并且没有得到预期的结果。我该如何解决这个问题?

提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。